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.