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 xkosj06@vse.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.
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.
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φ.
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.
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.namea upravφme ji do podoby:
ServerName jmΘno_naÜeho_poΦφtaΦeKonfiguraΦ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.).
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 .shtmlV 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 FollowSymLinksa p°idßme na jejφ konec slovo
Includes
:
Options Indexes FollowSymLinks IncludesKonfiguraΦ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.