Úvod

Jiří Kosek ml.

Jak to tak vypadá, začali jste právě číst nový seriál Aplikace na Webu, který bude pravidelně vycházet každých čtrnáct dní. Seriál však nevznikl jen tak náhodou sám od sebe. Volným způsobem navazuje na seriál Vytváříme si domovskou stránku, ve kterém jste se mohli seznámit s jazykem HTML.

Vývoj však na nikoho nečeká a webovské stránky se dnes již zdaleka nepoužívají pouze k prezentaci dokumentů na Internetu. Původně byl Web vyvinut jako pomůcka pro sdílení výsledků vědeckého výzkumu po celém světě. Dnes se však prostředí prohlížečů stává spíše novou platformou, na které mohou běžet nejrůznější aplikace. Intranet přece není nic jiného než podnikový informační systém, který je přístupný pomocí webovského prohlížeče. Zcela obdobným způsobem fungují i všem přístupné stránky pro objednání nejrůznějšího zboží, pizzu nevyjímaje.

Prohlížeč se tak stává nejen bránou k hypertextově provázaným dokumentům, ale i bránou ke spoustě informací uložených v různých databázích a zárověň novou platformou pro aplikace, které nejsou závislé na konkrétním operačním systému.

Výše zmíněnou funkčnost však již nelze dosáhnout prostým zápisem stránky v HTML a jejím umístěním na WWW-server. Stránky nyní musí pružně reagovat na požadavky uživatelů a zpřístupňovat informace, které se v čase mění. Stránka tedy nemůže být napevno uložena někde na disku serveru, ale pro každý požadavek uživatele se musí znovu vytvořit tak, aby reflektovala aktuální stav věci. Těmto požadavkům lze vyhovět pouze tak, že každý požadavek na stránku vyvolá spuštění programu (tzv. skriptu), který si zjistí všechny potřebné aktuální informace a složí z nich výslednou podobu stránky v HTML.

Obsahem našeho seriálu bude právě tvorba těchto skriptů. Ukážeme si jaké druhy skriptů existují a v jakých jazycích je lze zapisovat. Podrobně se zaměříme na ty nejpoužívanější systémy a zejména pak na ty, které jsou k dispozici bezplatně. Použití skriptů budeme ilustrovat na množství praktických ukázek.

Zvídavější jedince již nyní uklidním tím, že kromě výše zmíněného se seznámíme podrobněji i s protokolem HTTP, který se používá pro komunikaci prohlížečů s WWW-servery. Důkladně probereme možnosti spolupráce skriptů s databázemi. Nevynecháme samozřejmě i otázky bezpečnosti přenosu dat apod.

Všechny snad potěším tím, že seriál přinese návod na zařazení oblíbených počítadel přístupu ke stránce.

Pokud vám bude připadat, že nějakému tématu se věnujeme příliš málo nebo snad příliš moc, napište mi na adresu jirka@kosek.cz. Pomůžete tím seriál dovést do podoby, které vám bude nejvíce vyhovovat.

Teď se již pustíme do práce. Přeji vám příjemné čtení a nepropadejte panice. Tvorba dynamicky generovaných stránek zaměstná váš intelekt přeci jen více než samotné HTML.

Druhy skriptů

Před chvílí jsme naznačili, že o tvorbu dynamicky generováných stránek se starají skripty. Dnes se používají dva základní druhy skriptů:
  1. Serverem vkládané vsuvky -- v tomto případě se příkazy skriptu kombinují přímo se zápisem stránky v HTML. Předtím než je stránka odeslána uživateli, jsou všechny příkazy skriptu vyhodnoceny a jejich výsledek doplněn na odpovídající místo stránky. O vyhodnocení a zpracování příkazů se stará sám WWW-server. Do prohlížeče dorazí již zcela běžná stránka zapsaná v HTML.

    Nejstarším zástupcem serverem vkládaných vsuvek jsou SSI (Server Side Includes). Mnohem větší možnosti nabízejí komerční systémy LiveWire (Netscape) a ASP (Active Server Pages -- Microsoft). Stejné možnosti nabízí i volně šiřitelný systém PHP/FI.

  2. CGI-skripty jsou programy zapsané v libovolném programovacím jazyce a přeložené do spustitelné podoby (např. exe-soubor). Pokud server obdrží jako požadavek URL, které ukazuje na spustitelný program, program spustí a výsledek jeho běhu předá prohlížeči jako odpověď. CGI-skript tedy musí na svůj výstup zapisovat ve formátu HTML.

    Pro psaní CGI-skriptů se nejčastěji používají příkazové shelly, což je obdoba dávkových souborů v Unixu, a jazyk Perl. Nic však nebrání tomu psát CGI-skripty i v C/C++, Pascalu nebo třeba v Javě. Na tomto místě můžeme připomenout, že Java kromě možnosti tvorby Java-apletů nabízí i možnost vývoje klasických aplikací.

Zde již možná tušíte první zádrhel. Je jasné, že jen málokterý server podporuje všechny systémy pro tvorbu serverových skriptů. Zatímco do tvorby HTML stránek se může pustit každý, se skripty je to již složitější.

Abychom mohli skripty používat, musíme mít k dispozici WWW-server, který je podporuje. Předtím než se do tvorby skriptů pustíme, musíme si od poskytovatele připojení zjistit, jaké druhy skriptů lze na jeho serveru používat. Spolu s tím musíme zjistit, zda máme vůbec právo tyto skripty vytvářet a spouštět. Smutnou pravdou je, že většina poskytovatelů v oprávněném strachu používání skriptů nedovoluje. Špatně napsané skripty totiž mohou v některých operačních systémech snadno a v některých obtížněji narušit stabilitu a bezpečnost. Většinou vám tedy nezbyde nic jiného než poskytovatele připojení přesvědčit, aby vám skripty povolil a případně nainstaloval podporu pro některý druh skriptů.

Naše první pokusy se skripty však nemusíme provádět na počítači, který je připojen k Internetu. Vystačíme si s počítačem vlastním. Musíme na něm však spustit WWW-server, který popodruje CGI-skripty a některý druh serverem vkládaných vsuvek.

Optimálním operačním systémem pro experimenty i vážnou práci se skripty je Linux. Jednak pořídíme všechen potřebný software (operační systém, WWW-server, podpora skriptů) zdarma. Navíc je Linux velmi stabilní a výkonný. Pokud jej máme k dispozici je asi tou nejlepší volbou.

Pokud pracujeme v prostředí Windows a nechceme jej ani na chvíli opustit, nemusíme proto ještě zoufat. I pro Windows existuje několik volně šiřitelných serverů. Nedávno se mezi ně zařadil i server Apache.

Apache byl původně WWW-server určený pouze pro platformu Unix. Nutno podotknout, že zde si vydobyl výsadní postavení. Apache je velice výkonný a velmi stabilní server. Jeho další a velkou výhodou je cena -- tedy spíše není. Apache je k dispozici zdarma. Apache podporuje mnoho moderních technologií. Co je pro nás však důležitější, umožňuje spouštět CGI-skripty a má v sobě přímo zabudovánu podporu pro SSI. Lze jej také snadno rozšířit o podporu dalších druhů serverem vkládaných vsuvek.

Instalace serveru Apache v prostředí Windows

Dnes si rovnou připravíme půdu pro příští díl seriálu a ukážeme si, jak si nainstalovat server Apache pro své potřeby v prostředí Windows 95 nebo Windows NT. Pokud používáte Linux, máte patrně o starost méně, protože většina instalací již Apache obsahuje.

Apache si je možno stáhnout ze serveru http://www.apache.org/. Před vlastním stažením je dobré vybrat si zrcadlo serveru, které je rychle přístupné. Jedno z nich je dokonce v Čechách na serveru SunSite. Pro instalaci budeme potřebovat soubory apache_1_3b3_win32.exe a apache_1_3b3_win32_ext.exe.

První z nich slouží k samotné instalaci serveru. Jedná se o první verzi pro Windows, která ještě nemá vychytány všechny mouchy. Při instalaci nám instalační program nabízí instalaci do adresáře x:\Program Files\Apache. Spoustu problémů si však ušetříme, když necháme Apache instalovat přímo do adresáře x:\Apache. Všechny ostatní dotazy můžeme bezstarostně odklikat. Výsledkem bude instalace serveru a přidání odpovídající položky do menu Start.

Po instalaci serveru je vhodbé nainstalovat i dokumentaci. Spustíme soubor apache_1_3b3_win32_ext.exe. Po spuštění zadáme cestu k serveru x:\Apache a stiskneme tlačítko UnZip.

Nyní můžeme zkusit server spustit. V menu Start vybereme Programy/Apache/Apache WebServer. Pokud je server správně nainstalován v okně se po spuštění objeví text Apache/1.3b3.

Pokud program vydá nějakou chybovou hlášku a skončí, je problém patrně někde v podpoře protokolu TCP/IP na našem počítači. Pokud protokol TCP/IP nemáme instalován, musíme jej doinstalovat. Pokud i pak přetrvávají problémy, může pomoci ruční zadání jména počítače v konfiguračním souboru x:\Apache\conf\httpd.conf. V souboru nalezneme řádku:

#ServerName new.host.name
a upravíme ji do podoby:
ServerName jméno_našeho_počítače
Konfigurační soubor uložíme. A pokusíme se znovu spustit server. Pokud nám ani teď náš pokus nevyšel, nezbyde nic jiného než podívat se do dokumentace, která je uložena ve formátu HTML v adresáři x:\Apache\htdocs\manual. Instalace je naštěstí většinou bezproblémová.

Funkčnost serveru vyzkoušíme nejlépe tak, že spustíme prohlížeč a požádáme je o zobrazení dokumentu http://jméno_našeho_počítače/. Měla by se objevit úvodní stránka serveru Apache (viz obr.).

Úvodní obrazovka serveru Apache

Nyní ještě uděláme nezbytné zásahy do konfiguračních souborů tak, aby Apache podporoval serverem vkládané vsuvky SSI. Otevřeme konfigurační soubor srm.conf a odkomentujeme následující dvě řádky:

AddType text/html .shtml
AddHandler server-parsed .shtml
V konfiguračním souboru začínají komentáře znakem '#'; odkomentováním rozumím smazání tohoto znaku před nějakým konfiguračním příkazem. Soubor uložíme a otevřeme si soubor access.conf. Nalezneme řádku
Options Indexes FollowSymLinks
a přidáme na její konec slovo Includes:
Options Indexes FollowSymLinks Includes
Konfigurační soubor uložíme a restartujeme server. Nejprve tedy server ukončíme tím, že se přepneme do jeho okna a stiskneme klávesovou kombinaci Ctrl+C. Server se ukončí a my jej již spustíme běžným způsobem.

Pokud si budeme se serverem hrát častěji, vyplatí se, umístit pro něj zástupce do skupiny Spustit při startu a u zástupce nastavit, že se má program spouštět minimalizovaný. Apache se automaticky spustí při každém startu systému.

© Jiří Kosek 1999