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.