C-SaCzech Instalace

Snažil jsem se instalaci nanejvýš usnadnit a aby se daly veškeré důležité vlastnosti C-SaCzechu nastavit či přispůsobit. Program vznikal v prostředí operačního systému Unix a dále popisovaný postup instalace předpokládá, že bude provozován v tomto systému. Jeho přenesení do jiného prostředí je sice principiálně možné, ale narazíme na množství problémů.

Distribuce programu je uložena v souboru csaczechXX.tar.gz (kde XX je číslo verze), který můžete získat na URL

http://www.fi.muni.cz/~dolecek/c-saczech/src/
Distribuci je třeba rozbalit použitím příkazu
gunzip < csaczechXX.tar.gz | tar xvf -
Soubory budou rozbaleny do podadresáře csaczechXX. Poté následuje fáze přizpůsobení vašim konkrétním podmínkám. Veškeré zásahy se týkají souboru makeit, který je součástí distribuce. V tomto souboru následují proměnné, jejichž hodnoty možná uznáte za vhodné změnit. Jsou to:
Proměnné ovlivňující chování budoucího C-SaCzechu:
SHELLPATH
měla by obsahovat příkaz (včetně cesty), kterým se spustí nějaký Unix shell. V tomto shellu bude zpracován whichcode. Uveďte proto takovou cestu k shellu, kterou mohou použít CGI skripty (pokud váš server při spuštění mění kořen systému souborů, může se lišit od obvyklé cesty; to platí např. i v případě, kdy WWW server běží na jiném počítači než jsou WWW stránky). Doporučuji použít shell sh, ksh, bash, nebo zsh, pro ty byl whichcode otestován, že korektně funguje.
Default - /bin/sh.
DEFSOURCE
Implicitní kódování zdrojových textů stránek. Zde uveďte kódování, ve kterém bude pravděpodobně vytvořena většina Vašich stránek. Jestliže si stránka nepředepíše zdrojový kód, bude jako výchozí pro její překódování použit tento kód. Platné názvy kódů zjistíte prohlédnutím souboru nazvy. Nedělá se rozdíl mezi velkými a malými písmeny.
Default - ISO-8859-2.
CGIPATH
Cesta k CGI skriptům. Obsahem této proměnné by měl být začátek cesty (část uváděná bezprostředně za jménem serveru), která povede ke konverzním skriptům. Jestliže konverzní skripty uložíte do obecného adresáře, obsahujícího ostatní CGI skripty a budete se na ně odkazovat pomocí URL
http://www.kdesi.cz/cgi-bin/toASCII
a podobně, ponechte implicitní hodnotu "/cgi-bin". Cestu uvádějte bez závěrečného zpětného lomítka.
Default - /cgi-bin
CGISUFFIX
Přípona CGI skirptů. Pokud váš server vyžaduje, aby CGI skripty byly vyznačovány určitou konkrétní příponou (nejčastěji .cgi), uveďte ji jako hodnotu této proměnné. Je-li server dostatečně inteligentní na to, aby poznal CGI skript podle cesty, doporučuji ponechat jako hodnotu proměnné prázdný řetězec.
Default - nenastaveno.
GETMETHOD
Způsob, kterým má C-SaCzech získávat kódované texty. Můžete si vybrat jednu z následujících alternativ (musí být vypsáno malými písmeny):
file
Soubory budou vyzvedávány přímo ze systému souborů počítače. Tento způsob je efektivní, ale umožňuje kódovat jen texty, které jsou přítomny v podobě souborů. Nelze např. kódovat výstupy z CGI skriptů.

http
V tomto režimu práce C-SaCzech získává kódované dokumenty od svého serveru prostřednictvím HTTP protokolu. Tedy zahraje si na WWW klienta, odstraní své vlastní jméno z dotazu, který mu byl položen, a položí serveru tento modifikovaný dotaz. Data, která získá jako odpověď, posoudí a buď překóduje (jestliže se jedná o text, přesněji MIME typ text/html nebo text/plain) nebo propustí beze změny.

Tento způsob je podstatně méně efektivní (obsloužení každého dotazu vyvolává jeden dotaz navíc), umožňuje však překódovat vše, co je na serveru k dispozici - včetně výstupů z CGI skriptů.

Zvolíte-li tuto variantu, nemá žádný význam nastavení proměnné DEFAULTFILE a příznaků TIMESERVICES a IFMODIFIEDSINCE.

guess
C-SaCzech se pokusí automaticky určit pro každý dotaz, kterou z výše uvedených metod má použít. Využívá k tomu hodnotu proměnné CGIPATH. Jestliže je začátek cesty ke kódované informaci (část URL, uvedená za voláním skriptu) shodný s CGIPATH, použíje pro získání dokumentu HTTP. V opačném případě jej vyzvedne přímo ze systému souborů.

Metoda GUESS se snaží o rozumný kompromis mezi předchozími alternativami. Určení, kdy použít který způsob, však rozhodně není dokonalé.

Default - GUESS.
DEFAULTFILE
Obsahuje jméno souboru, který má být uživateli předložen, pokud zadá pouhé jméno adresáře. Většinou se pro tento účel používá index.html. Pokud uživatel požaduje /texty/, ve skutečnosti obdrží /texty/index.html.
Default - index.html.
TIMESERVICES
Jedná se o první z příznaků. Vypnuto = nemá žádný obsah, zapnuto jinak. Příznak TIMESERVICES udává, zda se lze spolehnout výsledky funkce stat programovacího jazyka C, kterou C-SaCzech využívá pro získání informací o velikosti a době vzniku souboru.
Default - nastaveno.
IFMODIFIEDSINCE
Má skript reagovat na hlavičku If-Modified-Since? Pokud vámi používaný server nepředává CGI skriptům informace z HTTP hlaviček dotazu (v proměnných prostředí HTTP_hlavička), nedostává C-SaCzech potřebné informace. V takovém případě volbu vypněte.
Default - nastaveno.
DECODEQUERY
Pokud nechcete, aby C-SaCzech překódovával i parametr z příkazové řádky, tuto promennou nedefinujte.
Default - nastaveno.
ADDBAR
Pokud je nastavena tato proměnná, C-SaCzech bude reagovat na text <!--BAR--> (popř.<!--BAR E-->) tak, že v daném místě vypíše text, umožňující změnu kódování dokumentu; podle toho, která varianta je použita, doplní buď českou hlavičku a závěr (obsah proměnných HEADBARTEX a TAILBARTEXT), nebo anglický (EHEADBARTEX a ETAILBARTEXT).
Default - nastaveno.
ALLWAYSADDBAR
Pokud je tato proměnná nastavena, C-SaCzech vypíše lištu vždy; pokud text neobsahuje řetězec <!--BAR-->, vypíše ji na konci dokumentu. Samozřejmě pouze tehdy, pokud daný dokument překódovává (takže obrázky jsou v pohodě).
Default - nastaveno.
LONGNAMEBAR
Pokud je nastavena, v nabídce kódování se zobrazí celá jména kódů a ne pouze trojpísmenné zkratky.
Default - nenastaveno.
HEADBARTEXT, EHEADBARTEXT
Text, který se vypíše před lištu s nabídkou překódování. HEADBARTEXT se vypíše v české verzi, EHEADBARTEXT v anglické.
Default - viz makeit.
TAILBARTEXT, ETAILBARTEXT
Text, který se vypíše za lištu s nabídkou překódování. Standartně je to "<HR>", tedy vodorovná linka. Opět TAILBARTEXT je pro českou lištu, ETAILBARTEXT pro anglickou.
Default - "<HR>".
ADDWHICHCODE
Pokud je nastavena, v automaticky generované nabídce kódování se zobrazí i obsah proměnné BARWHICHCODENAME, který bude odkazem na volbu pomocí standartního whichcode. Má smysl pouze tehdy, pokud je nastaveno ADDBAR .
Default - nastaveno.
BARWHICHCODENAME
Text, který se vypíše do lišty.
Default - "whichcode".
MULTIPART
Nastavením této proměnné bude zkompilovaný C-SaCzech podporovat více různých dokumenů v jednom dokumentu; jak to funguje se můžete podívat na tyto příklady. C-SaCzech bude reagovat na <--PART XXXXX--> odpovídajícím tak, že podle názvu zjistí, zda má danou část vypsat (pokud byl spuštěn jako např. toASCII.eng.cgi, bude vypisovat části <--PART eng-->).
Default - nastaveno.

Proměnné používané pouze v čase kompilace:
CC
Tato proměnná obsahuje jméno kompilátoru, který bude použit pro vytvoření spustitelného C-SaCzechu. cc je standartní a programy jím zkompilované by měly běžet bez problémů. gcc je lepší, ale některé WWW servery odmítají spustit jím zkompilované programy. Na systémech BSD/OS se používá shlicc.
LINK
Tuto proměnnou je třeba definovat na systémech, které standartně nepřilinkovávají knihovny socket a nsl. Podle mých zkušeností je třeba knihovny přilinkovat na těchto systémech:
SunOs, SCO Unix
naopak není třeba na:
BSD/OS, Linux, IRIX
Pokud zkusíte zkompilovat C-SaCzech a kompilátor vypíše zprávu "undefined" a dlouhý seznam jmen, je třeba každopádně tyto knihovny nalinkovat. Pokud by ani to nepomohlo (což by už bylo vážné) nebo by se vyskytly jiné problémy, stále ještě můžete kontaktovat autora, který se vynasnaží pomoci.
COMPILESOURCE, CONSTSOURCE, COMPILETARGET
Slouží jen pro snadnější změnu konfigurace skriptu makeit. COMPILESOURCE obsahuje jméno souboru, který se bude překládat, CONSTSOURCE jméno souboru s kontantami (tento soubor je skriptem makeit měněn podle nastavení proměnných popsaných v první části). Proměnná COMPILETARGET se použije pro určení jména zkompilovaného souboru. Soubor $COMPILESOURCE se zkompiluje na to$COMPILETARGET$CGISUFFIX.

Soubor whichcode.src slouží instalačnímu skriptu makeit jako základ pro budoucí skript whichcode, nabízející uživateli volbu kódu.

Tím je ukončena konfigurační fáze. Jako další krok spusťte

./makeit
Jeho výsledkem bude zkompilovaný to$COMPILETARGET a ostatní soubory toXXXX, které jsou symbolické odkazy na tento soubor a spustitelný whichcode.

Je vhodné navíc pro skript whichcode zavést synonyma to__CHARSET__ a to, pokud odkaz na některý kódovaný soubor neprošel C-SaCzechem nebo jím prošel se ztrátou typu cílového kódování. Při standartní instalaci se tedy ještě vytvoří soubory to__CHARSET__, to, které jsou odkazy (linky) na skript whichcode.

Všechny tyto soubory přesuňte do adresáře s CGI skripty tak, aby jejich umístění vyhovovalo identifikaci, uvedené ve výše zmiňované proměnné CGIPATH - například

mv to* whichcode /www/cgi-bin/

Tím je instalace ukončena.

Přenos do jiného operačního systému

Potenciální přenos na jiný OS než Unix není tak jednoduchý jako u původního SaCzechu. Musí se totiž zajistit, aby fungovaly na daném OS sockety, což nemusí být až tak triviální (na MSDOSu nevím , ve Woknouz by to možná stačil Winsock) a adekvátně změnit názvy souborů, které se mají "inklůdnout". Pokud jsou v cílovém systému jiné oddělovače jmen souborů, je třeba je také adekvátně změnit ve zdrojovém csaczechXX.c. Také by se musel předělat skript makeit, aby korektně fungoval i pod novým operačním systémem. Dále platí to co u SaCzechu:

Je třeba rozbalit distribuční soubor, ale tar a GNU zip jsou dostupné pro lecjaké systémy.

Potenciálními zdroji problémů mohou dále být:


ZPET Zpět

Tato stránka je součástí dokumentace programu C-SaCzech.