SaCzech-Uj: Instalace

SaCzech-Uj je pouzitelny v prostredi operacniho systemu Unix, pro ktere je dale popisovany postup instalace urcen.

Distribuce programu je ulozena v souboru

saczechUj.tar.gz
Distribuci je treba rozbalit pouzitim prikazu
gunzip < saczechUj.tar.gz | tar xvf -
Soubory budou rozbaleny do podadresare saczechUj. Pote nasleduje faze prizpusobeni vasim konkretnim podminkam. Veskere zasahy se tykaji souboru make, ktery je soucasti distribuce. Je treba jednak zkontrolovat jeho prvni radek (zacinajici znaky #!), zda obsahuje platny prikaz pro spusteni interpretu jazyka Perl. Dale v tomto souboru nasleduji promenne, jejichz hodnoty mozna uznate za vhodne zmenit. Jsou to:
$homedir
UNIXova cesta na hlavni (login) adresar uzivatele.

$user
Virtualni URL cesta (za jmenem serveru) vedouci na WWW koren uzivatele.

$cgipath
Virtualni URL cesta vedouci k CGI skriptum pro zmenu kodovani.
Necht napr. login adresar uzivatele je /home/group/USER,
WWW koren tohoto uzivatele je /home/group/USER/www
a teto UNIXove ceste odpovida virtualni URL cesta http://www.kdesi.ca/~USER/
(tj., vsechny soubory, ktere uzivatel umisti do jakeholiv podadresare pod /home/group/USER/www jsou k dispozici celemu svetu - pokud to uzivatel dovoli vhodnym nastavenim modu jejich pristupu - vetvenim z tohoto URL). Necht uzivatel umisti sve CGI skripty do
/home/group/USER/www/cgi-bin,
vnejsi svet je pak muze vyvolavat jako
http://www.kdesi.ca/~USER/cgi-bin/toASCII.cgi/..., etc.
V tomto pripade je nutno tri vyse uvedene promenne nastavit takto:
$homedir="/home/group/USER";
$user="/~USER";
$cgipath="/~USER/cgi-bin";
(uvadejte bez zaverecnych zpetnych lomitek).

Pokud je mozno skripty instalovat na serveru globalne (implicitne do /www/cgi-bin), coz je situace odpovidajici puvodnimu SaCzechu, budou volany jako http://www.kdesi.ca/cgi-bin/toASCII.cgi/~USER/..., etc.
a nastaveni prislusnych promennych je:

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

$names
Promenna, ktera urcuje volbu nazvu generovanych skriptu. Muze nabyvat hodnot "WWWdia" a "EUnet". Odpovidaji jim dve ruzne definice pole @codes. Vzajemny vztah obou definic je zajistovan asociativnim polem %altCodes. Prirazeni kodu a abeced ulozenych v souberech abeceda.* je zajistovano asociativnim polem %abcNames.

$cgiprefix
Retezec, kterym bude zacinat nazev skriptu. Jmeno j-teho skritptu bude vytvareno takto: $cgiprefix.$codes[j].$cgisuffix.

%codename
Asociativni pole, obsahujici jmena, pod kterymi budou jednotlive kody vystupovat v skriptu whichcode.cgi.

SaCzech-Uj definuje tyto promenne a pole nasledove:
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), kterym bude skript whichcode[.cgi], nabizejici volbu kodu, oslovovat uzivatele. Vsechny ostatni vygenerovane skripty jsou identicke pro oba jazyky.

$source
Kodovani zdrojovych textu stranek. Zde uvedte kodovani, ve kterem budou vytvoreny vsechny Vase stranky. Jestlize na zacatku prvniho radku (jako prvni slovo) stranky neni pomoci komentare <!-- MYCHARSET=... --> uveden zdrojovy kod identicky s obsahem promenne $source, bude stranka odeslana bez prekodovani! (predpoklada se o ni, ze je v ASCII). make automaticky proveri, zda Vami vybrana hodnota $source je platnym jmenem kodu pro danou volbu promenne $names.


Nastaveni vsech ostatnich parametru make se ridi stejnymi pravidly jako v puvodnim SaCzechu:
$perl
Mela by obsahovat prikaz (vcetne absolutni cesty) pro spusteni interpretu jazyka Perl. Bude vyuzita pro vytvoreni prvnich radku konverznich skriptu, ktere se budou spoustet jako CGI skripty. Uvedte proto takovou cestu k interpretu, kterou mohou pouzit CGI skripty (pokud vas server pri spusteni meni koren systemu souboru, muze se lisit od obvykle cesty).

$cgisuffix
Pripona CGI skriptu. Pokud vas server vyzaduje, aby CGI skripty byly vyznacovany urcitou konkretni priponou (nejcasteji .cgi), uvedte ji jako hodnotu teto promenne. Je-li server dostatecne inteligentni na to, aby poznal CGI skript podle cesty, doporucuji ponechat jako hodnotu promenne prazdny retezec.

$defaultfile
Obsahuje jmeno souboru, ktery ma byt uzivateli predlozen, pokud zada pouhe jmeno adresare. Vetsinou se pro tento ucel pouziva index.html. Pokud uzivatel pozaduje /texty/, ve skutecnosti obdrzi /texty/index.html.

$dirdelim
Znak, pouzivany v danem operacnim systemu pro oddelovani adresaru. Bude pouzit v regularnich vyrazech, proto je treba jej prislusne vybavit ochrannymi zpetnymi lomitky. Nejbeznejsi hodnoty (lomitko a zpetne lomitko) jsou pripraveny v souboru make.

$flag{"timeservices"}
Jedna se o prvni z priznaku. Jejich pripustnymi hodnotami jsou 0 (nula - vypnuto) nebo 1 (jednicka - zapnuto). Priznak timeservices udava, zda se lze spolehnout vysledky funkce stat programovaciho jazyka Perl, kterou SaCzech-Uj vyuziva pro ziskani informaci o velikosti a dobe vzniku souboru.

Volba je urcena predevsim pro operacni systemy jine nez Unix, ve kterem by funkce stat mela fungovat bez problemu. U odlisnych systemu je treba vec vyzkouset.

$flag{"ifmodifiedsince"}
Ma skript reagovat na hlavicku If-Modified-Since? Pokud vami pouzivany server nepredava CGI skriptum informace z HTTP hlavicek dotazu (v promennych prostredi HTTP_hlavicka), nedostava SaCzech potrebne informace. V takovem pripade volbu vypnete.


Tim je ukoncena konfiguracni faze. Jako dalsi krok spustte

./make
Jeho vysledkem by mela byt skupina souboru (toXXX[.cgi] nebo yyy[.cgi] a soubor whichcode[.cgi]. Tyto soubory presunte do adresare s CGI skripty tak, aby jejich umisteni vyhovovalo identifikaci, uvedene ve vyse zminovanych promennych $cgipath a $homedir - napriklad
mv *.cgi ~/www/cgi-bin/
Doporucuji navic pro skript whichcode zavest synonyma to__CHARSET__ (__CHARSET__) a to, protoze SaCzech-Uj neprovadi zadnou substituci za __CHARSET__. Dotycna synonyma zajisti prikazy
cd ~/www/cgi-bin
ln -s whichcode to__CHARSET__
ln -s whichcode to
pripadne
ln -s whichcode.cgi __CHARSET__.cgi
ln -s whichcode.cgi to.cgi

a podobne.
Tim je instalace ukoncena.