- p°edchozφ Φlßnek - nßsledujφcφ Φlßnek - obsah - ·vodnφ strßnka -

LinuxovΘ noviny Duben 1998

Apache a PHP/FI - recenze knihy

Milan ⌐orm, 13. dubna 1998

[ obßlka kniky ]  
Asi 320 strßnkovß modrß kniha formßtu A5 mß jednu z t∞ch lep╣φch lepen²ch vazeb, jak u╛ u Neokortexu http://www.neo.cz 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φ. *


- p°edchozφ Φlßnek - nßsledujφcφ Φlßnek - obsah - ·vodnφ strßnka -