This page is part of documentation of C-SaCzech. It has been created and is maintained by Jaromφr DoleΦek, dolecek@ics.muni.cz

[Hosted by 4Web]
[CSßΦek 2.1]
 

Autor: Jaromφr DoleΦek, dolecek@ics.muni.cz

Dokumentace CSßΦku  ┌vodnφ strßnka

Instalace CSßΦku

Tento dokument podrobn∞ popisuje, jak (zkompilovat a) nainstalovat CSßΦek.
Na unixech se vyu╛φvß GNU autoconf ke zji╣t∞nφ vlastnostφ systΘmu. Kompilace by tedy m∞la prob∞hnout bez v∞t╣φch problΘm∙ na kterΘmkoli modern∞j╣φm unixovΘm systΘmu. Pro MS Windows NT je CSßΦek k dispozici v u╛ zkompilovanΘ form∞, i kdy╛ ani na Windows by p°φpadnΘ p°ekompilovßnφ CGI CSßΦku nem∞lo Φinit v∞t╣φ potφ╛e.

Postup instalace:

Unix - CGI mutace

Pro ·Φely testovßnφ bezproblΘmovΘ kompilace a funkce mßm p°φstup na tyto operaΦnφ systΘmy: NetBSD/i386 (1.3.2, 1.4.x), Linux/i386 (2.0.20), Solaris/sparc (2.5, SunOS 4), Digital Unix OSF/alpha (4.0), AIX/rs6000 (4.2), IRIX/mips (6.2, 6.4, 6.5.1), n∞kdy i HP-UX. ╚as od Φasu vyrobφm binßrky CGI CSßΦku pro n∞kterΘ z nich, jsou pak k dispozici na adrese. http://www.csacek.cz/distrib/bin/cgi/unix/. Popis instalace je p°ilo╛en p°φmo k nim.

Obvykle je tedy nutno na Unixu CSßΦek zkompilovat ze zdrojov²ch soubor∙.

V ideßlnφm p°φpad∞ staΦφ rozbalit distribuΦnφ soubor csacek-VERZE.tar.gz, p°ejφt do adresß°e, kter² se tak vytvo°φ a zadat:
     ./configure
Skript configure ov∞°uje vlastnosti systΘmu a vygeneruje p°φslu╣nΘ hlaviΦkovΘ soubory a soubor Makefile. Skript configure akceptuje n∞kolik parametr∙, kter²mi lze ovlivnit n∞kterΘ vlasnosti v²slednΘho CSßΦku. Popis v²znamu jednotliv²vh parametr∙ viz nφ╛e.

Po skonΦenφ configure je t°eba zadat:
     make
a poΦkat, a╛ se CSßΦek zkompiluje. V podadresß°i compile/ se vytvo°φ binßrka a pot°ebnΘ symbolickΘ linky na ni. Po dokonΦenφ kompilace je t°eba cel² obsah adresß°e compile/ p°esunout do adresß°e na WWW serveru, ve kterΘm mßte ostatnφ CGI skripty tak, aby se na CSßΦek dalo odkazovat. M∙╛ete ov∞°it funkci CSßΦku pokusn²m http://www.vas-server.cz/cgi-bin/toASCII/. Pokud se strßnka zobrazφ v po°ßdku, tato Φßst instalace je hotova.

Pro rozchozenφ whichcode je je╣t∞ nutno nainstalovat jeho ╣ablonu. Jednß se o soubor whichcode_template.html v podadresß°i templates/. Tento soubor je nutno zkopφrovat do adresß°e /www/csacek. Lze pou╛φt i jin² adresß°, pokud jeho jmΘno p°edßte CSßΦku p°i kompilaci p°es parametr --with-templatedir. ⌐ablonu lze umφstit i p°φmo do adresß°e, kde jsou umφst∞ny binßrky CGI CSßΦku - pokud CSßΦek nenalezne ╣ablonu ve v²╣e uvedenΘm adresß°i, pokusφ se jen otev°φt v aktußlnφm adresß°i. V∞t╣ina WWW server∙ nastavuje aktußlnφ adresß° pro spou╣t∞nΘ CGI skripty prßv∞ na adresß°, kde je dan² skript umφst∞n, tak╛e to m∙╛e zafungovat. Je╣t∞ ov∞°it funΦnost testovacφm http://www.vas-server.cz/cgi-bin/whichcode/ a instalace je hotova.

 Zp∞t


Unix - FastCGI mutace

V prvnφ °ad∞ musφ FastCGI podporovat server a je nutno nainstalovat FastCGI Developer's Kit, aby byla dostupnß knihovna fcgi a hlaviΦkovΘ soubory. Popis a rozchozenφ FastCGI je mimo zßb∞r tohoto dokumentu; informace o n∞m viz domßcφ strßnka FastCGI.

Skript configure je t°eba volat s parametrem --with-mutace=FastCGI, jinak by se zkompilovat obyΦejn² CGI CSßΦek. Pokud je FastCGI knihovna nainstalovßna na n∞jakΘm nestandardnφm mφst∞ (za "standardnφ" se pova╛uje /usr/lib; na Linuxu je╣t∞ /lib a na BSDi /shlib), je t°eba skriptu configure p°edat informaci o jejφm umφst∞nφ p°es prom∞nnou prost°edφ LIBS - je jej t°eba volat takto:
     LIBS="-L/adresar/s/libfcgi" ./configure --with-mutace=FastCGI

Pokud je knihovna v n∞kterΘm ze "standardnφch" adresß°∙, poΦßteΦnφ LIBS="-L...." nenφ samoz°ejm∞ t°eba psßt.

Dßle instalace postupuje stejn∞ jako u CGI.

 Zp∞t


Unix - Apache modul

CSßΦek funguje bez nutnosti patchovat server na Apache °ady 1.1 (testovßno na 1.1.1), 1.2 (testovßno na 1.2.4 a 1.2.6) a 1.3 (testovßno p°evß╛n∞ na 1.3.1 a 1.3.9).

Pod Apache 1.1.X nebyl CSßΦek nikdy testovßn v ╛ßdnΘm "opravdovΘm" provozu (alespo≥ ne autorem). M∞l by pod nφm v╣ak fungovat p°inejmen╣φm stejn∞ dob°e jako pod 1.2.X.

Na Apache 1.2.4 byl Apache CSßΦek vyvφjen a probφhala na n∞m v∞t╣ina ·vodnφch test∙. Nasazenφ CSßΦku na Apache °ady 1.2.X by tedy nem∞lo zp∙sobit ╛ßdn² problΘm. Autorovi nejsou znßmy ╛ßdnΘ problΘmy specifickΘ pro CSßΦka na Apache 1.2.X.

V souΦasnosti je CSßΦek p°ednostn∞ odla∩ovßn na Apache 1.3.1 pop°. 1.3.9. Mno╛stvφ spokojen²ch u╛ivatel∙ CSßΦku na Apache °ady 1.3 ukazuje, ╛e i zde je CSßΦek velmi stabilnφ a dobrß volba. CSßΦek je nap°φklad jedin² Φe╣tinß°sk² modul, kter² lze bez ·prav serveru pou╛φvat jako DSO modul.

Postup instalace je podobn² jako v p°φpad∞ mutace CGI a FastCGI, jen je skript configure t°eba spustit s parametrem --with-mutace=Apache:      ./configure --with-mutace=Apache
Nastavenφ ostatnφch parametr∙ nenφ u Apache modulu tak d∙le╛itΘ, proto╛e v∞t╣inu z nich lze nastavit v konfiguraci WWW serveru, nez nutnosti rekompilace modulu.

P°φkazem make se vytvo°φ soubor mod_csacek.c. Dal╣φ postup se li╣φ podle verze Apache, kter² pou╛φvßte:

Po vlastnφ kompilaci serveru Φi modulu je t°eba je╣t∞ nainstalovat ╣ablonu pro csßΦkovskΘ whichcode. Jednß se o soubor whichcode_template.html, je v adresß°i ../csacek-VERZE/templates/. Defaultn∞ CSßΦek tuto ╣ablonu hledß v adresß°i /www/csacek/. Pokud ji chcete umφstit jinam, jmΘno adresß°e se dß zm∞nit konfiguraΦnφ direktivou csacekTemplateDir. Tφm instalace Apache CSßΦku konΦφ a m∙╛ete si u╛ jen u╛φvat komfortu, kter² vßm CSßΦek nabφzφ ;-)

Pokud pou╛φvßte jako operaΦnφ systΘm RedHat Φi odvozen² systΘm a Apache 1.3.X mßte z RPM, je t°eba defaultnφ konfiguraci serveru p°ece jen je╣t∞ mφrn∞ doplnit. Konfigurace z RPM pou╛φvß direktivy ClearModuleList a AddModule proto, aby se zbyteΦn∞ neaktivovaly moduly, kterΘ nejsou pou╛φvßny. Do seznamu AddModule direktiv je nutnΘ p°idat jednu pro CSßΦek, aby se i on aktivoval - jinak nebude funΦnφ. Na konec seznamu je tedy t°eba p°idat

AddModule mod_csacek.c

 Zp∞t

Unix - Apache 1.1.X a 1.2.X

U Apache 1.1.X a 1.2.X se CSßΦek musφ zakompilovat do serveru. Je nutnΘ mφt k dispozici zdrojov² k≤d serveru Apache a bude t°eba mφrn∞ upravit konfiguraΦnφ soubor pro kompilaci Apache

Nejd°φv je t°eba p°ekopφrovat nebo nalinkovat soubor mod_csacek.c do adresß°e se zdrojov²m k≤dem Apache. Pak do souboru Configuration p°idat direktivu:

Module csacek_module mod_csacek.o
CSßΦek musφ b²t poslednφ uveden² modul, jinak hrozφ problΘmy.

Pokud se p°i vytvß°enφ souboru mod_csacek.c programem make vypsalo:

Pouziva se systemova knihovna: -lz
je ji nutnΘ p°idat do EXTRA_LIBS, tj. v Configuration musφ b²t uvedeno n∞co jako:
EXTRA_LIBS= -lz
Dßle je t°eba zajistit, aby se p°i kompilaci mod_csacek.c na╣ly CSßΦkovskΘ hlaviΦkovΘ soubory. Nejjednodu╣╣φ cesta je modifikace CFLAGS (Apache 1.1.X) nebo EXTRA_CFLAGS (Apache 1.2.X) v souboru Configuration tak, aby obsahoval
-I/adresar/kde/je/rozbalen/CSacek

Nynφ se postupuje u╛ klasick²m zp∙sobem, spustφ se apachovsk² skript ./Configure, kter² vygeneruje to, co je t°eba. NßslednΘ make pak zkompiluje server. V²slednou binßrku je t°eba p°emφstit na svΘ mφsto a WWW server je mo╛nΘ nastartovat. Po rozchozenφ whichcode je instalace hotova. Pokud pou╛φvßte RedHat, prosφm p°eΦt∞te si tuto poznßmku ke konfiguraci.

Apache CSßΦek se dß dßle konfigurovat n∞kolika direktivami, p°ehled je uveden jinde.

 Zp∞t

Unix - Apache 1.3.X - DSO

JednoznaΦn∞ nejpohodln∞j╣φ a preferovanß cesta, jak dostat CSßΦek na server. CSßΦek se jako dynamicky nahrßvan² modul zkompiluje pomocφ nßstroje apxs, kter² je souΦßstφ Apache 1.3. Pokud je apxs v cest∞ p°i spu╣t∞nφ csßΦkovskΘho configure, p°i nßslednΘm make se automaticky spustφ a vytvo°φ p°φslu╣n² soubor mod_csacek.so. Jinak se jen vypφ╣e, jak²m zp∙sobem se mß apxs volat a musφte to ud∞lat "ruΦn∞" sami.

V²sledn² soubor mod_csacek.so p°esunete do adresß°e s ostatnφmi dynamick²mi moduly. Pak je t°eba do konfigurace serveru p°idat direktivu

LoadModule csacek_module /cesta/k/modulum/mod_csacek.so
Cestu nenφ pot°eba zadßvat v p°φpad∞, ╛e je modul umφst∞n ve standardnφm adresß°i.

Nynφ staΦφ u╛ jen rozchodit whichcode a instalace je hotova. Pokud pou╛φvßte RedHat, prosφm p°eΦt∞te si tuto poznßmku ke konfiguraci.

 Zp∞t

Unix - Apache 1.3.X - statick²

Zakompilovat CSßΦek do serveru zp∙sobem podobn²m jako pod Apache 1.1.X nebo 1.2.X lze samoz°ejm∞ i u Apache 1.3.X. Je to ale ta obtφ╛n∞j╣φ a mΘn∞ flexibilnφ cesta, za normßlnφch okolnostφ pravd∞podobn∞ pou╛ijete CSßΦek jako DSO modul.

Postup instalace je vφcemΘn∞ shodn² jako u Apache 1.2.X, jen je lep╣φ soubor mod_csacek.c nakopφrovat nebo nalinkovat do adresß°e .../apache_1.3.X/src/modules/extra/ a direktiva v apachovskΘm Configuration musφ b²t

AddModule modules/extra/mod_csacek.o
mφsto Module. Op∞t platφ, ╛e CSßΦek by m∞l b²t uveden jako poslednφ modul, jinak si koledujete o problΘmy. Obsah EXTRA_LIBS a EXTRA_CFLAGS je t°eba upravit tak, jak je uvedeno u popisu kompilace pod Apache 1.2.X.

Druhß mo╛nost je p°idat CSßΦek do serveru bez p°φmΘ editace souboru Configuration. P°i spu╣t∞nφ APACI configure p°idßte parametr --add-module=src/modules/extra/mod_csacek.c a skript zajisti vlo╛enφ a zakompilovßnφ modulu. Nenφ ale mo╛nΘ nijak specifikovat extra adresß°e s hlaviΦkov²mi soubory, tak╛e p°i tomto postupu je t°eba do adresß°e .../src/modules/extra/ krom∞ mod_csacek.c zkopφrovat i v╣echny CSßΦkovskΘ hlaviΦkovΘ soubory.
Pak se p°φkazem make zkompiluje server a je mo╛no ho restartovat. StaΦφ jen rozchodit whichcode a instalace je hotova. Pokud pou╛φvßte RedHat, prosφm p°eΦt∞te si tuto poznßmku ke konfiguraci.

Apache CSßΦek se dß dßle konfigurovat n∞kolika direktivami, p°ehled je uveden jinde.

 Zp∞t


Parametry skriptu configure

--program-suffix=SUFFIX
Mß v²znam pouze pro (Fast)CGI.
Pomocφ tohoto parametru lze za°φdit, aby generovanΘ skripty m∞ly n∞jakou p°φponu (nejΦast∞ji .cgi).
--without-gcc
Nepou╛ije se gcc, i kdy╛ je na systΘmu k dispozici.
--with-templatedir=PATH
UrΦuje plnou cestu k adresß°i se ╣ablonami; cesta musφ b²t uvedena tak, jak je na souborovΘm systΘmu, nikoli WWW URL. Pod Apache lze tuto hodnotu nastavit takΘ konfiguraΦnφ direktivou csacekTemplateDir.
Default: /www/csacek
--with-defsource=KOD
KOD bude nastaven jako defaultnφ k≤dovßnφ serveru - tato hodnota se pou╛ije pri p°ek≤dovßnφ strßnek, kterΘ nemajφ oznaΦeno sve k≤dovßnφ; vstup od u╛ivatele bude takΘ p°ek≤dovßn do tohoto k≤dovßnφ. Pod Apache lze pouzit k nastavenφ tΘho╛ direktivu csacekDefaultCharset.
Default: iso-8859-2
--with-method=METODA
Mß v²znam jen pro (Fast)CGI.
Metoda, kterou se budou strßnky vyzvedßvat. http je jistota, ale m∙╛e b²t zbyteΦn∞ pomalß. guess se sna╛φ uhßdnout, jestli je dan² soubor obyΦejnΘ HTML. Pokud ano, dokument p°edß p°φmo, jinak pou╛ije metodu http (tj. obsah dokumentu zφskß dal╣φm po╛adavkem na server). Metoda file je nyni ekvivalentnφ s guess a je zachovßna jen kv∙li kompatibilit∞ se star╣φm CSßΦkem a SaCzechem.
PovolenΘ hodnoty: guess, http, file
Default: guess
--with-partlist="CASTI"
Mß v²znam jen pro (Fast)CGI.
Nßzvy Φßstφ se pou╛ijφ p°i generovßnφ jednotliv²ch link∙. Pro ka╛dou Φßst se vygeneruje p°islu╣nß sada toXXX.CAST.
Default: "cs en"
--with-debug[=LEVEL]
Zapφnß lad∞nφ CSßΦku a po°izovßnφ zßznamu o tom, co CSßΦek p°i b∞hu d∞lß. V²stupnφ soubory jsou /tmp/csacek_``PID''_``PORADOVE_CISLO''.
--with-mutace=MUTACE
Mutace, kterou chcete kompilovat.
PovolenΘ hodnoty: Apache, CGI, FastCGI
Default: CGI
--disable-decodequery
Pomocφ tohoto parametru lze vypnout p°ek≤dovßvßnφ dat poslan²ch klientem do k≤dovßnφ serveru. U Apache CSßΦku lze pou╛φt k tΘmu╛ direktivu csacekRecodeInput Off.
--disable-compression
Nezakompilovat podporu pro kompresi. V p°φpad∞, ╛e je tento parametr uveden, CSßΦek se zkompiluje bez k≤du pro kompresi. V p°φpad∞, ╛e tento parametr nenφ uveden, u Apache CSßΦku se dß direktivou csacekCompress komprese zapnout nebo vypnout.
--disable-secure
Mß v²znam pouze pro (Fast)CGI, pod Apache se pou╛ijφ standardnφ bezpeΦnostnφ mechanismy serveru.
CSßΦek normßln∞ testuje, zda n∞kde "po cest∞" k souboru, o kter² byl po╛ßdßn, nenφ soubor .htaccess nebo .nsconfig. Tento soubor slou╛φ k nastavovßnφ konfigurace pro dan² podstrom na WWW serveru - nap°. p°φstupov²ch prßv. Pokud onen soubor nalezne, pro vyzvednutφ dokumenu pou╛ije metodu http. Tφmto parametrem lze toto chovani potlaΦit.
--disable-symlink
Mß v²znam pouze pro (Fast)CGI.
M∙╛e se vyskytnout sitace, kdy nelze pou╛φt symlinky. Pokud je uvedena tato volba, jednotlivΘ soubory se kopφrujφ mφsto linkovßnφ.

 Zp∞t


MS Windows NT - CGI

Je t°eba mφt binßrnφ distribuci pro MS Windows NT (nap°. tu z tohoto CD nebo verzi z adresy http://www.csacek.cz/distrib/bin/cgi/) a soubor rozbalit.

Pro instalaci binßrnφ distribuce slou╛φ skript install_cgi.bat. Je t°eba ho spustit z adresß°e, kde je binßrnφ distribuce rozbalena. Akceptuje jedin² parametr - jmΘno adresß°e, kde jsou umφst∞ny CGI skripty a kam se majφ po rozkopφrovßnφ dßt csßΦkovskΘ binßky (toXXX, whichcode*). Pokud tento adresß° ve chvφli, kdy je instalaΦnφ skript spu╣t∞n, neexistuje, je vytvo°en.
Skript se takΘ postarß o vytvo°enφ adresß°e C:\CSacek a zkopφruje tam whichcode_template.html. To je v╣e, staΦφ u╛ jen ov∞°it, ╛e v╣e funguje OK - nap°. testovacφm URL http://www.vas-server.cz/cgi-bin/toASCII/.

Kompilace ze zdrojovΘho k≤du

Pokud kompilujete CSßΦek ze zdrojov²ch k≤d∙ pomocφ p°ilo╛enΘho Makefile pro MSVC 4.0 a 5.0 (v podadresß°i NT\MSVS\ u zdrojovΘho k≤du CSßΦku), jednotlivΘ binßrnφ soubory se vytvo°φ v podadresß°i compile\. Je t°eba je do adresß°e s ostatnφmi CGI skripty p°esunou manußln∞, stejn∞ tak jako manußln∞ vytvo°it adresß° C:\CSacek a p°esunout tam soubor whichcode_template.html z podadresß°e templates\.

Pokud kompilujete CGI CSßΦek pomocφ n∞jakΘho IDE, m∙╛e p°ijφt vhod skript copy_cgi.bat, kter² program, zadan² jako argument, rozkopφruje na jednotlivΘ toXXX, whichcode. Jinak pak platφ to samΘ jako u kompilace pomocφ p°ilo╛enΘho Makefile.

 Zp∞t


MS Windows NT - ISAPI

Je t°eba mφt binßrnφ distribuci pro MS Windows NT (nap°. tu z tohoto CD nebo verzi z adresy http://www.csacek.cz/distrib/bin/isapi/) a dan² soubor rozbalit.

Pro instalaci slou╛φ skript install_isapi.bat. Akceptuje dva parametry. Prvnφ je jmΘno adresß°e, kam se mß umφstit csßΦkovskΘ ISAPI dll (pokud tento adresß° neexistuje, bude vytvo°en). Druh² parametr je jedno z a, ano, n, ne a urΦuje, jestli se mß do registry zapsat defaultnφ konfigurace CSßΦku (obsah souboru csacek_isapi.reg). Pokud tento parametr nenφ uveden, ona konfigurace se do registry zapφ╣e. Skript install_isapi.bat takΘ zajistφ vytvo°enφ adresß°e C:\CSacek a nakopφrovßnφ souboru whichcode_tamplate.html. Tφm je prvnφ polovina instalace hotova.

Dßle je t°eba zm∞nit konfiguraci serveru IIS tak, aby CSßΦek pou╛il. CSßΦek je t°eba nainstalovat jako globßlnφ ISAPI filtr. Dß se to ud∞lat p°es program MS Management Console (v menu je obvykle oznaΦovßn jako Sprßvce slu╛eb sφt∞ Internet). V oknu s Console root je pod zßlo╛kou Internet Informational Server zßlo╛ka podle jmΘna poΦφtaΦe. Na toto jmΘno je t°eba kliknout prav²m my╣φtkem. Objevφ se menu, je t°eba vybrat Vlastnosti. Objevφ se samostatnΘ okno, obsahuje mimo jinΘ sekci ╪φdφcφ vlastnosti, kterß obsahuje combo box (v²b∞r). Je t°eba tam t°eba ponechat Slu╛ba WWW a klinout na vedlej╣φ tlaΦφtko Upravit. Objevφ se dal╣φ okno, s n∞kolika zßlo╛kami. Je t°eba vybrat zßlo╛ku Filtry ISAPI. Objevφ se seznam ji╛ nainstalovan²ch ISAPI filtr∙. Zde se provßdφ i p°idßvßnφ nov²ch filtr∙. Stiskne se tlaΦφtko P°idat, pak se zadß jmΘno filtru (m∙╛e b²t jakΘkoli, nap°. CSßΦek) a cesta k DLL souboru, kter² jej implementuje. Pro CSßΦek bude cesta n∞co jako C:\CSacek\csacek_isapi.dll - jmΘno adresß°e je t°eba zadat stejn∞, jako p°i volßnφ skriptu install_isapi.bat, csacek_isapi.dll je vlastnφ filtr. Pokud si cestu p°esn∞ nepamatujete, lze pou╛φt tlaΦφtko Prochßzet a soubor nalΘzt takto.

Nynφ je t°eba p°estartovat IIS a m∙╛ete CSßΦek zaΦφt pou╛φvat.

 Zp∞t


MS Windows NT - Apache modul

Apache modul CSßΦku zatφm nenφ na MS Windows funkΦnφ, zatφm nenφ p°esn∞ jasnΘ, proΦ (CSßΦek modul se nahraje, jen v urΦitΘ chvφli najednou n∞kterΘ deskriptory vytvo°enΘ CSßΦkem p°estanou b²t platnΘ). Je to jedna z vy╣╣φch priorit v²voje, zprovoznenφ se uskuteΦnφ jak to jen bude mo╛nΘ. Zatφm je tedy nutno na Windows pou╛φt bu∩ ISAPI CSßΦek pod IIS (ISAPI CSßΦek pod Apache emulacφ ISAPI nefunguje - Apache nepodporuje ISAPI filtry), nebo CGI CSßΦka.

 Zp∞t


 Zp∞t
 ┌vodnφ strßnka


This page is part of documentation of C-SaCzech. It has been created and is maintained by Jaromφr DoleΦek, dolecek@ics.muni.cz
$Id: instalace.html,v 1.2 2000/01/24 14:30:37 dolecek Exp $