Apache a PHP/FI -- recenze knihy
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Milan Šorm, 13. dubna 1998
Asi 320 stránková modrá kniha formátu A5 má jednu z těch lepších
lepených vazeb, jak už u Neokortexu Neokortex, spol. s r. o. bývá
zvykem. Kniha se neudrží otevřená, avšak listy nevypadávají.
Prvních 15 kapitol (asi 220 stran) je věnováno instalaci,
konfiguraci a popisu principu práce nejrozšířenějšího webového
serveru Apache HTTPd http://www.apache.org, druhá (tenčí) část, je
věnována vysvětlení slibného nástroje pro vývojáře webových sídel,
jazyku PHP/FI http://www.php.net a jeho propojení s Apachem.
Trochu netradičně působí, že vlastně první kapitola má číslo
3 (číslované kapitoly jsou i úvod a obsah). Najdeme v ní detailní
popis spuštění Apache a seznam souborů, které Apache potřebuje pro
svoji práci (konfigurační soubory a vznikající protokoly).
Následující kapitola je věnována překladu a instalaci Apache.
Podstatnou část kapitoly zabírá překlad originálního manuálu,
v druhé části je však velmi pěkně popsána část týkající se
konfigurací virtuálních hostitelů. Toto je významná vlastnost
Apache, kdy server dokáže vytvářet několik virtuálních serverů
(např. www.aaa.cz a www.bbb.cz) pod jednou spuštěnou kopií Apache
a dokonce i na jediné IP adrese. Autor zde čtenáře provádí úskalími
jednotlivých variant (více spuštěných démonů, jeden démon apod.)
včetně popisu odstranění chyb, které vás při konfigurování mohou
potkat.
Kapitola 5 rozšiřuje tuto problematiku i výkladem, jak server
provádí rozpoznání virtuálních hostitelů a další podobné teoretické
záležitosti, které se vám budou hodit tehdy, až se vám nepodaří
server nakonfigurovat ani podle příručky.
Šestá kapitola je věnována bezpečnosti a provozování
uživatelských CGI skriptů. Je zde vysvětlena práce programu suEXEC,
který by vám měl zaručit podstatně vyšší bezpečnost, pokud při
používání serveru Apache dovolíte uživatelům tvořit vlastní CGI
skripty, a navíc chcete zajistit pohodlí při práci jednotlivých
uživatelů.
Kapitola 7 se zaobírá kompilací a provozováním Apache pod
systémem UnixWare, kapitola 8 pak přináší překlad manuálového článku
týkajícího se změn mezi verzemi 1.1 a 1.2 (pro informaci, poslední
verzí řady 1.2 je 1.2.5, nyní už existuje řada 1.3 nově podporující
i platformu WindowsNT).
Za hodně zajímavou část této kapitoly považuji část,
která stručně popisuje rozhraní API, které umožňuje dotvořit si
další vlastnosti serveru přímo konkrétním uživatelem (zde myšleno
samozřejmě správcem serveru). Možnosti API jsou bohaté a mimo
standardní distribuce existuje celá řada doplňků, jako je např.
modul pro podporu různých českých kódování, modul pro výše zmíněné
PHP/FI, modul pro SSL (bezpečnostní protokol) či např. modul,
který uživatelům usnadní zadávání URL na vašem serveru (např. chybně
zadané písmenko se opraví aj.).
Devátá kapitola rozebírá činnost serveru při problémovém
stavu TCP protokolu, tzv. stavu FIN_WAIT_2. V tomto stavu je již
komunikace mezi serverem a klientem ukončena, avšak stále ještě
server eviduje spojení (nedošlo ke korektnímu ukončení). Kapitola
osvětluje, proč k tomuto dochází a jak to na různých platformách
odstranit.
V druhé části kapitoly se nachází překlad dokumentu HOWTO (Jak
na to), který dává odpovědi na základní problémy, se kterými se
správce může setkat (např. jak omezit chování internetových robotů,
jak přesměrovat server či resetovat protokolové soubory). Rovněž
jsou zde zmíněny problémy, které mohou vzniknout na nelinuxových
platformách (BSD, Digital Unix, ...).
Část 9.6 popisuje, co může vést ke zdánlivému (či skutečnému)
zpomalení serveru. Je zde objasněn problém, který se na Linuxu občas
vyskytne, tj. zamrznutí serveru na několik sekund až minut a jeho
opětovné probuzení v důsledku činnosti Apache.
Kapitola 10 přináší zkušenosti, které mohou zvýšit bezpečnost
vašeho serveru a usnadnit vám konfigurování. Druhá část kapitoly
je referenční příručkou pro konfigurování serveru. Jde de facto
o překlad originální dokumentace na www.apache.org, s podrobnějším
popisem konfigurace modulu pro authentizaci vůči databázi mSQL.
V druhé části kapitoly je ukázána nová vlastnost Apache 1.3,
o které se málo ví. Server dokáže obsluhovat dynamicky zaváděné
moduly ( mod_dld), tj. dotvářet si konfiguraci serveru až za chodu,
bez nutnosti překladu. Apache 1.3 navíc přináší možnost používat
i moduly ve formátu Win32 DLL. Toto samozřejmě využijí ti, kteří
budou Apache používat ve Windows NT. Doufám, že toto bude jedna z
klíčových vlastností (spolu s mod_isapi pro vytváření rozhraní mezi
Apache a programy společnosti Microsoft), která nakonec vytlačí MIIS
z oblasti Windows NT a nahradí jej Apachem.
V samém závěru je ještě rozebrán interní proxy modul Apache (
mod_proxy), který dokáže pracovat i s protokolem SSL) a přepisovací
modul (mod_rewrite), který umožňuje provádět přesměrování URL na
základě regulárních výrazů. Tím lze např. dosáhnout, že uživatelská
URL budou http://www.nekde.cz/Milan.Sorm/, i když účty na serveru
jsou např. xsorm. Navíc lze při přepisování volat externí skripty
např. v Perlu a tam už se fantazii meze nekladou.
Jedenáctá kapitola rozebírá konfiguraci více IP adres
na jednom síťovém rozhraní pro SunOS 4.1.x, 12. kapitola obsahuje
překlad dokumentu FAQ (často kladené otázky) a popis známých chyb
jednotlivých klientů (abyste věděli, až budete rozjíždět svůj
vlastní server, komu dávat vinu). Nakonec kapitoly následuje seznam
známých chyb Apache.
Třináctá kapitola přináší pokračování referenční příručky
z desáté kapitoly (bývalo by bylo asi inteligentnější dát je k sobě,
ale autor použil tuto skladbu). Tato část se týká konfigurování
samotného jádra Apache (kdežto v desáté kapitole byl popis
konfigurace jednotlivých modulů).
Čtrnáctá kapitola ukazuje možnosti nového Apache 1.3 při spojení
s Microsoft Windows s rozhraním ISAPI (Internet Server Applications
API). Patnáctá kapitola pak podává výčet vlastností jednotlivých
verzí Apache.
V druhé části knihy je popsán serverový skriptovací jazyk
PHP/FI, který vám uvnitř HTML dovolí psát vlastní aktivní skripty
(např. hodiny ukazující přesný čas apod.). Že už jste toto
někde viděli? Ano, bylo to v JavaScriptu, ale ten byl závislý
na implementaci v prohlížeči. PHP/FI je čistě záležitostí serveru.
PHP/FI je rychlejší než CGI (protože jej provádí již běžící
Apache), umožňuje připojení na programy pomocí mechanismu trubky
(kolony), jak to známe např. z Perlu -- např. posílání pošty,
komunikace s aplikacemi apod. Dále obsahuje značné možnosti pro
protokolování své činnosti, takže uživatelé si sami mohou tvořit
statistiky návštěvnosti jejich stránek apod., obsahuje vlastní
ochranné metody přístupu k dokumentům, umí se napojit na řadu
existujících SQL serverů (mSQL, Postgres, MySQL, Sybase, Oracle,
Illustra, Adabas, Filepro), zvládá komunikaci skrz specifikaci ODBC
či standardní DBM databáze. Zvládá uploadování souboru na server,
ovládá matematické výpočty, matice, Perlovská asociativní pole (lze
přenášet mezi jednotlivými webovými stránkami), možnosti skriptového
jazyka C, regulární výrazy, tvorbu GIF obrázků atd.
Jak je vidět, určitě má PHP/FI budoucnost, navíc je zadarmo.
Kapitoly 16 a 17 poskytují základní úvod do problematiky PHP/FI
a popis instalace. PHP/FI může pracovat jednak jako serverový modul
nebo jako CGI skript zprostředkující PHP/FI vašim skriptům (pak lze
PHP/FI užít i v jiných serverech než Apache, ovšem ne už v takové
rychlosti). V kapitole 17 je rovněž rozebrána konfigurace PHP/FI
do bezpečného režimu (aby mohly být využity všechny bezpečnostní
techniky PHP/FI).
Druhá část kapitoly 17 rozebírá konfiguraci jednotlivých
částí PHP/FI a napojení na konkrétní SQL servery, využití jeho
specifických vlastností apod. 18. kapitola podrobně popisuje vlastní
jazyk PHP/FI. Kapitola 19 je potom referenční příručkou všech funkcí
PHP/FI.
V závěru 19. kapitoly je potom rozebrána možnost dodefinovat si
vlastní příkazy do PHP/FI. To přináší jedinečnou možnost upravit
si jazyk podle svého. Navíc autor PHP/FI nabízí, že pokud mu nové
funkce zašlete, rozšíří o ně novou verzi PHP/FI. No není to skvělé?
Dvacátá kapitola je pak dobře zpracovaný rejstřík. Mám však
podezření, že není zcela kompletní. Např. mod_perl, o kterém autor
hovoří v 16. kapitole, není v rejstříku k nalezení.
Kniha budí dojem překladu originálních manuálů, o čemž se autor
na začátku zmiňuje. Na mnoha místech je však tento překlad rozšířen
o cenné zkušenosti, což zvyšuje jeho kvalitu. Navíc nesrozumitelné
pasáže originálního manuálu autor převyprávěl, takže jsou nyní
pochopitelnější.
Kniha bude přínosem nejen pro toho, kdo se hodlá s Apachem
seznámit (i když pro něj bude možná příliš stručná), ale především
pro toho, kdo hodlá Apache vyladit na maximální možnou míru. Kniha
je výbornou referenční příručkou a popisem toho, jak server pracuje
(technický manuál).
Ten, kdo se chce seznámit s PHP/FI a vážně v něm pracovat,
by měl po této knize sáhnout zcela určitě. Negativně působí jen
trochu zmatené uspořádání některých kapitol, přičemž by některé
dlouhé kapitoly (10, 17) stálo za to rozdělit do několika menších.
Sympatické by bylo, kdyby bylo alespoň za kapitolami vynecháno
trochu volného místa na zapsání poznámek, protože do referenčních
příruček si řada lidí vpisuje nově se objevivší direktivy či
parametry. Na druhé straně toto by knihu prodražilo, a tak se musí
člověk spokojit se čtyřmi volnými stranami na konci knihy.
V knize mi rovněž chybí seznam literatury či webových stránek,
kde by člověk získal další informace a rozšířil si tak vědomosti
(např. podrobnější specifikaci API Apache i API PHP/FI modulu
apod.).
Knihu můžete zakoupit za 294 Kč v každém počítačovém
knihkupectví.
výheň