SaCzech-Uj: Instalace

SaCzech-Uj je pouzitelný v prostredí operaçního systému Unix, pro které je dále popisovaný postup instalace urçen.

Distribuce programu je ulozena v souboru

saczechUj.tar.gz
Distribuci je treba rozbalit pouzitím príkazu
gunzip < saczechUj.tar.gz | tar xvf -
Soubory budou rozbaleny do podadresáre saczechUj. Poté následuje fáze prizpűsobení vasim konkrétním podmínkám. Veskeré zásahy se týkají souboru make, který je souçástí distribuce. Je treba jednak zkontrolovat jeho první rádek (zaçínající znaky #!), zda obsahuje platný príkaz pro spustëní interpretu jazyka Perl. Dále v tomto souboru následují promënné, jejichz hodnoty mozná uznáte za vhodné zmënit. Jsou to:
$homedir
UNIXová cesta na hlavní (login) adresár uzivatele.

$user
Virtuální URL cesta (za jménem serveru) vedoucí na WWW koren uzivatele.

$cgipath
Virtuální URL cesta vedoucí k CGI skriptűm pro zmënu kódování.
Necht napr. login adresár uzivatele je /home/group/USER,
WWW koren tohoto uzivatele je /home/group/USER/www
a této UNIXové cestë odpovídá virtuální URL cesta http://www.kdesi.ca/~USER/
(tj., vsechny soubory, které uzivatel umístí do jakéholiv podadresáre pod /home/group/USER/www jsou k dispozici celému svëtu - pokud to uzivatel dovolí vhodným nastavením módu jejich prístupu - vëtvením z tohoto URL). Necht uzivatel umístí své CGI skripty do
/home/group/USER/www/cgi-bin,
vnejsí svët je pak műze vyvolávat jako
http://www.kdesi.ca/~USER/cgi-bin/toASCII.cgi/..., etc.
V tomto prípadë je nutno tri výse uvedené promënné nastavit takto:
$homedir="/home/group/USER";
$user="/~USER";
$cgipath="/~USER/cgi-bin";
(uvádëjte bez závëreçných zpëtných lomítek).

Pokud je mozno skripty instalovat na serveru globálnë (implicitnë do /www/cgi-bin), coz je situace odpovídající pűvodnímu SaCzechu, budou volány jako http://www.kdesi.ca/cgi-bin/toASCII.cgi/~USER/..., etc.
a nastavení príslusných promënných je:

$homedir="";
$user="";
$cgipath="/cgi-bin";

$names
Promënná, která urçuje volbu názvű generovaných skriptű. Műze nabývat hodnot "WWWdia" a "EUnet". Odpovídají jim dvë rűzné definice pole @codes. Vzájemný vztah obou definic je zajistován asociativním polem %altCodes. Prirazení kódű a abeced ulozených v souberech abeceda.* je zajistováno asociativním polem %abcNames.

$cgiprefix
Retëzec, kterým bude zaçínat název skriptű. Jméno j-tého skritptu bude vytváreno takto: $cgiprefix.$codes[j].$cgisuffix.

%codename
Asociativní pole, obsahující jména, pod kterými budou jednotlivé kódy vystupovat v skriptu whichcode.cgi.

SaCzech-Uj definuje tyto promënnë a pole následovë:
if ( $names eq "WWWdia" )
{
$cgiprefix="to";
# nadpisy kodu ve whichcode
$codename{"ASCII"}="ASCII";
$codename{"CP1250"}="MS Win";
$codename{"CP852"}="PC Latin 2";
$codename{"ISO-8859-2"}="ISO Latin 2";
$codename{"ISO-8859-1"}="ISO Latin 1";
$codename{"KEYBCS2"}="KEYBCS2";
$codename{"KOI8-CS"}="KOI8-CS";
$codename{"MAC"}="Mac";
@codes=
 ("ASCII","CP1250","MAC","ISO-8859-2","ISO-8859-1","CP852","KEYBCS2","KOI8-CS");
%abcNames=("ASCII","ASCII","CP1250","CP1250","MAC","MAC",
 "ISO-8859-2","ISO-8859-2","ISO-8859-1","ISO-8859-1","CP852","CP852",
 "KEYBCS2","KEYBCS2","KOI8-CS","KOI8-CS");
%altCodes=("ASCII","ascii","CP1250","1250","MAC","mac","ISO-8859-2","iso",
 "ISO-8859-1","iso1","CP852","852","KEYBCS2","kam","KOI8-CS","koi8-cs");
}
elsif ( $names eq "EUnet")
{
$cgiprefix="";
# nadpisy kodu ve whichcode
$codename{"ascii"}="Ascii";
$codename{"1250"}="CP1250";
$codename{"852"}="PC Latin 2";
$codename{"iso"}="ISO Latin 2";
$codename{"iso1"}="ISO Latin 1";
$codename{"kam"}="Kamenicti";
$codename{"koi8-cs"}="KOI8-CS";
$codename{"mac"}="Mac";
@codes=("ascii","1250","mac","iso","iso1","852","kam","koi8-cs");
%abcNames=("ascii","ASCII","1250","CP1250","mac","MAC","iso","ISO-8859-2",
 "iso1","ISO-8859-1","852","CP852","kam","KEYBCS2","koi8-cs","KOI8-CS");
%altCodes=%abcNames;
}
else { die '$names'." v 'make' se musi rovnat bud \"WWWdia\" nebo \"EUnet\"\n"; }

$whichcodelang
Zde uvedte jazyk (cesky nebo slovensky), kterým bude skript whichcode[.cgi], nabízející volbu kódu, oslovovat uzivatele. Vsechny ostatní vygenerované skripty jsou identické pro oba jazyky.

$source
Kódování zdrojových textű stránek. Zde uvedte kódování, ve kterém budou vytvoreny vsechny Vase stránky. Jestlize na zaçátku prvního rádku (jako první slovo) stránky není pomocí komentáre <!-- MYCHARSET=... --> uveden zdrojový kód identický s obsahem promënné $source, bude stránka odeslána bez prekódování! (predpokládá se o ní, ze je v ASCII). make automaticky provërí, zdá Vámi vybraná hodnota $source je platným jménem kódu pro danou volbu promënné $names.


Nastavení vsech ostatních parametrű make se rídí stejnými pravidly jako v pűvodním SaCzechu:
$perl
Mëla by obsahovat príkaz (vçetnë absolutní cesty) pro spustëní interpretu jazyka Perl. Bude vyuzita pro vytvorení prvních rádkű konverzních skriptű, které se budou spoustët jako CGI skripty. Uvedte proto takovou cestu k interpretu, kterou mohou pouzít CGI skripty (pokud vás server pri spustëní mëní koren systému souborű, műze se lisit od obvyklé cesty).

$cgisuffix
Prípona CGI skriptű. Pokud vás server vyzaduje, aby CGI skripty byly vyznaçovány urçitou konkrétní príponou (nejçastëji .cgi), uvedte 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ý retëzec.

$defaultfile
Obsahuje jméno souboru, který má být uzivateli predlozen, pokud zadá pouhé jméno adresáre. Vëtsinou se pro tento úçel pouzívá index.html. Pokud uzivatel pozaduje /texty/, ve skuteçnosti obdrzí /texty/index.html.

$dirdelim
Znak, pouzívaný v daném operaçním systému pro oddëlování adresárű. Bude pouzit v regulárních výrazech, proto je treba jej príslusnë vybavit ochrannými zpëtnými lomítky. Nejbëznëjsí hodnoty (lomítko a zpëtné lomítko) jsou pripraveny v souboru make.

$flag{"timeservices"}
Jedná se o první z príznakű. Jejich prípustnými hodnotami jsou 0 (nula - vypnuto) nebo 1 (jedniçka - zapnuto). Príznak timeservices udává, zda se lze spolehnout výsledky funkce stat programovacího jazyka Perl, kterou SaCzech-Uj vyuzívá pro získání informací o velikosti a dobë vzniku souboru.

Volba je urçena predevsím pro operaçní systémy jiné nez Unix, ve kterém by funkce stat mëla fungovat bez problémű. U odlisných systémű je treba vëc vyzkouset.

$flag{"ifmodifiedsince"}
Má skript reagovat na hlaviçku If-Modified-Since? Pokud vámi pouzívaný server nepredává CGI skriptűm informace z HTTP hlaviçek dotazu (v promënných prostredí HTTP_hlaviçka), nedostává SaCzech potrebné informace. V takovém prípadë volbu vypnëte.


Tím je ukonçena konfiguraçní fáze. Jako dalsí krok spustte

./make
Jeho výsledkem by mëla být skupina souborű (toXXX[.cgi] nebo yyy[.cgi] a soubor whichcode[.cgi]. Tyto soubory presuńte do adresáre s CGI skripty tak, aby jejich umístëní vyhovovalo identifikaci, uvedené ve výse zmińovaných promënných $cgipath a $homedir - napríklad
mv *.cgi ~/www/cgi-bin/
Doporuçuji navíc pro skript whichcode zavést synonyma to__CHARSET__ (__CHARSET__) a to, protoze SaCzech-Uj neprovádí zádnou substituci za __CHARSET__. Dotyçná synonyma zajistí príkazy
cd ~/www/cgi-bin
ln -s whichcode to__CHARSET__
ln -s whichcode to
prípadnë
ln -s whichcode.cgi __CHARSET__.cgi
ln -s whichcode.cgi to.cgi

a podobnë.
Tím je instalace ukonçena.