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ň