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.