SaCzech-Uj: Instalace

SaCzech-Uj je pou‘iteln˜ v prost©ed¡ opera‡n¡ho syst‚mu Unix, pro kter‚ je d le popisovan˜ postup instalace ur‡en.

Distribuce programu je ulo‘ena v souboru

saczechUj.tar.gz
Distribuci je t©eba rozbalit pou‘it¡m p©¡kazu
gunzip < saczechUj.tar.gz | tar xvf -
Soubory budou rozbaleny do podadres ©e saczechUj. Pot‚ n sleduje f ze p©izp–soben¡ va¨im konkr‚tn¡m podm¡nk m. Ve¨ker‚ z sahy se t˜kaj¡ souboru make, kter˜ je sou‡ st¡ distribuce. Je t©eba jednak zkontrolovat jeho prvn¡ © dek (za‡¡naj¡c¡ znaky #!), zda obsahuje platn˜ p©¡kaz pro spu¨tˆn¡ interpretu jazyka Perl. D le v tomto souboru n sleduj¡ promˆnn‚, jejich‘ hodnoty mo‘n  uzn te za vhodn‚ zmˆnit. Jsou to:
$homedir
UNIXov  cesta na hlavn¡ (login) adres © u‘ivatele.

$user
Virtu ln¡ URL cesta (za jm‚nem serveru) vedouc¡ na WWW ko©en u‘ivatele.

$cgipath
Virtu ln¡ URL cesta vedouc¡ k CGI skript–m pro zmˆnu k¢dov n¡.
NechŸ nap©. login adres © u‘ivatele je /home/group/USER,
WWW ko©en tohoto u‘ivatele je /home/group/USER/www
a t‚to UNIXov‚ cestˆ odpov¡d  virtu ln¡ URL cesta http://www.kdesi.ca/~USER/
(tj., v¨echny soubory, kter‚ u‘ivatel um¡st¡ do jak‚holiv podadres ©e pod /home/group/USER/www jsou k dispozici cel‚mu svˆtu - pokud to u‘ivatel dovol¡ vhodn˜m nastaven¡m m¢du jejich p©¡stupu - vˆtven¡m z tohoto URL). NechŸ u‘ivatel um¡st¡ sv‚ CGI skripty do
/home/group/USER/www/cgi-bin,
vnej¨¡ svˆt je pak m–‘e vyvol vat jako
http://www.kdesi.ca/~USER/cgi-bin/toASCII.cgi/..., etc.
V tomto p©¡padˆ je nutno t©i v˜¨e 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 mo‘no skripty instalovat na serveru glob lnˆ (implicitnˆ do /www/cgi-bin), co‘ 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¡ p©¡slu¨n˜ch promˆnn˜ch je:

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

$names
Promˆnn , kter  ur‡uje volbu n zv– generovan˜ch skript–. M–‘e nab˜vat hodnot "WWWdia" a "EUnet". Odpov¡daj¡ jim dvˆ r–zn‚ definice pole @codes. Vz jemn˜ vztah obou definic je zaji¨Ÿov n asociativn¡m polem %altCodes. P©i©azen¡ k¢d– a abeced ulo‘en˜ch v souberech abeceda.* je zaji¨Ÿov no asociativn¡m polem %abcNames.

$cgiprefix
žetˆzec, kter˜m bude za‡¡nat n zev skript–. Jm‚no j-t‚ho skritptu bude vytv ©eno 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 uveƒte jazyk (cesky nebo slovensky), kter˜m bude skript whichcode[.cgi], nab¡zej¡c¡ volbu k¢du, oslovovat u‘ivatele. V¨echny ostatn¡ vygenerovan‚ skripty jsou identick‚ pro oba jazyky.

$source
K¢dov n¡ zdrojov˜ch text– str nek. Zde uveƒte k¢dov n¡, ve kter‚m budou vytvo©eny v¨echny Va¨e str nky. Jestli‘e na za‡ tku prvn¡ho © dku (jako prvn¡ slovo) str nky nen¡ pomoc¡ koment ©e <!-- MYCHARSET=... --> uveden zdrojov˜ k¢d identick˜ s obsahem promˆnn‚ $source, bude str nka odesl na bez p©ek¢dov n¡! (p©edpokl d  se o n¡, ‘e je v ASCII). make automaticky provˆ©¡, zd  V mi vybran  hodnota $source je platn˜m jm‚nem k¢du pro danou volbu promˆnn‚ $names.


Nastaven¡ v¨ech ostatn¡ch parametr– make se ©¡d¡ stejn˜mi pravidly jako v p–vodn¡m SaCzechu:
$perl
Mˆla by obsahovat p©¡kaz (v‡etnˆ absolutn¡ cesty) pro spu¨tˆn¡ interpretu jazyka Perl. Bude vyu‘ita pro vytvo©en¡ prvn¡ch © dk– konverzn¡ch skript–, kter‚ se budou spou¨tˆt jako CGI skripty. Uveƒte proto takovou cestu k interpretu, 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).

$cgisuffix
P©¡pona CGI skript–. 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.

$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.

$dirdelim
Znak, pou‘¡van˜ v dan‚m opera‡n¡m syst‚mu pro oddˆlov n¡ adres ©–. Bude pou‘it v regul rn¡ch v˜razech, proto je t©eba jej p©¡slu¨nˆ vybavit ochrann˜mi zpˆtn˜mi lom¡tky. Nejbˆ‘nˆj¨¡ hodnoty (lom¡tko a zpˆtn‚ lom¡tko) jsou p©ipraveny v souboru make.

$flag{"timeservices"}
Jedn  se o prvn¡ z p©¡znak–. Jejich p©¡pustn˜mi hodnotami jsou 0 (nula - vypnuto) nebo 1 (jedni‡ka - zapnuto). P©¡znak timeservices ud v , zda se lze spolehnout v˜sledky funkce stat programovac¡ho jazyka Perl, kterou SaCzech-Uj vyu‘¡v  pro z¡sk n¡ informac¡ o velikosti a dobˆ vzniku souboru.

Volba je ur‡ena p©edev¨¡m pro opera‡n¡ syst‚my jin‚ ne‘ Unix, ve kter‚m by funkce stat mˆla fungovat bez probl‚m–. U odli¨n˜ch syst‚m– je t©eba vˆc vyzkou¨et.

$flag{"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  SaCzech pot©ebn‚ informace. V takov‚m p©¡padˆ volbu vypnˆte.


T¡m je ukon‡ena konfigura‡n¡ f ze. Jako dal¨¡ krok spusŸte

./make
Jeho v˜sledkem by mˆla b˜t skupina soubor– (toXXX[.cgi] nebo yyy[.cgi] a soubor whichcode[.cgi]. 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˜ch promˆnn˜ch $cgipath a $homedir - nap©¡klad
mv *.cgi ~/www/cgi-bin/
Doporu‡uji nav¡c pro skript whichcode zav‚st synonyma to__CHARSET__ (__CHARSET__) a to, proto‘e SaCzech-Uj neprov d¡ ‘ dnou substituci za __CHARSET__. Doty‡n  synonyma zajist¡ p©¡kazy
cd ~/www/cgi-bin
ln -s whichcode to__CHARSET__
ln -s whichcode to
p©¡padnˆ
ln -s whichcode.cgi __CHARSET__.cgi
ln -s whichcode.cgi to.cgi

a podobnˆ.
T¡m je instalace ukon‡ena.