PHP -- Jak zaΦφt

Tato strßnka se pokusφ naznaΦit, jakΘ podmφnky je t°eba splnit pro rozb∞hßnφ prvnφch PHP skript∙. Samotn²m jazykem PHP a jeho mo╛nostmi se zde nezab²vßm.

Zam∞°uji se na u╛ivatele Windows, kte°φ nemajφ vlastnφ server.

Co je PHP - Co je pot°eba - Internetov² server - Nejsnaz╣φ domßcφ instalace - Alternativnφ instalace - Prßce se serverem Apache - Konfigurace PHP - Prßce s MySQL - PHPMyAdmin - Psanφ PHP skript∙ - Dal╣φ infomace

Co je PHP

Kdo se psanφ strßnek v∞nuje del╣φ dobu, zjistφ, ╛e n∞kterΘ v∞ci nem∙╛e realizovat bez serverov²ch program∙. PHP je (zjednodu╣en∞ °eΦeno) programovacφ jazyk vsuvek, kterΘ se dajφ vklßdat do obyΦejn²ch HTML soubor∙. Symbolicky zapsßno:

html zdroj, <? PHP vsuvka ?> a zase html zdroj

Soubory s takov²mi vsuvkami se pojmenovßvajφ p°φponou *.php (a jin²mi). P°i po╛adavku na php strßnku server prochßzφ soubor a vsuvky programov∞ vyhodnocuje, tak╛e klientovi odesφlß u╛ ΦistΘ HTML. 

Princip serverovΘho skriptovßnφ

Na v²stup dorazφ:

html zdroj, v²sledek PHP vsuvky a zase html zdroj

Co je pot°eba

  1. Mo╛nost publikovßnφ na internetovΘm serveru, kter² podporuje PHP (lze sehnat zdarma nebo lacino).
  2. Na domßcφ stanici nainstalovan² server pro lad∞nφ PHP skript∙ (o tom je tato strßnka). 

Oba servery -- internetov² i domßcφ (testovacφ) musejφ mφt nainstalovßny n∞kterΘ programy:

  1. HTTP server, nap°φklad Apache, IIS nebo PWS
  2. podporu pro PHP na tomto serveru
  3. velmi se hodφ databßzov² program, nejΦast∞ji MySQL

Tyto programy musejφ b²t nakonfigurovßny pro vzßjemnou spoluprßci. U internetovΘho serveru v╣echno zpravidla nainstaluje a nakonfiguruje jeho sprßvce, ale testovacφ server si m∙╛e ka╛d² nainstalovat sßm. Na n∞m si lze napsat a otestovat skripty, kterΘ se potom odesφlajφ na ostr² internetov² server.

Internetov² server

N∞kterΘ hostingovΘ servery nabφzejφ umφst∞nφ strßnek s podporou PHP zdarma. Jejich ·rove≥ ov╣em neb²vß nejlep╣φ. P°ehled server∙ nabφzejφcφch PHP vΦetn∞ hodnocenφ kvality mß Jana na sv²ch strßnkßch o PHP. 

V praxi se vyplatφ ob∞tovat pßr stovek roΦn∞ a zaplatit si hosting na n∞jakΘm serveru, kter² PHP umφ. V²hodou je, ╛e pak mßte komu nadßvat, a╛ to p°estane fungovat. 

Pokud mßte trvalΘ p°ipojenφ k Internetu, nemusφte si d∞lat testovacφ server, m∙╛ete testovat na ostrΘm serveru. Nenφ to ·pln∞ dobr² nßpad. U╛ t°eba z d∙vod∙ zßlohovßnφ, testovßnφ nebo rychlosti prßce se testovacφ instalace doporuΦuje. Funguje-li domßcφ testovacφ server stejn∞ jako ten internetov² (dß se to nastavit), publikujφ se PHP soubory normßln∞ (t°eba p°es FTP). 

Nejsnaz╣φ domßcφ instalace

D°φve bylo bezchybnΘ rozb∞hßnφ testovacφho serveru tak trochu alchymiφ. DobrΘ to m∞li u╛ivatelΘ Linuxu, kter² hned p°i instalaci systΘmu umo╛≥oval p°idßnφ PHP. Dnes existuje snadnß volba i pro u╛ivatele Windows. 

Existuje balφΦek program∙ PHPTriad  (b²val ke sta╛enφ na serveru www.phpgeek.com, nynφ se dß stßhnout odjinud), kter² obsahuje prßv∞ ty t°i nezbytnΘ souΦßsti ka╛dΘ windowsovskΘ instalace: 

  1. server Apache
  2. modul PHP pro Apache
  3. databßzi MySQL

Navφc jsou v balφΦku dal╣φ zajφmavΘ programy usnad≥ujφcφ prßci. V╣echno je to freeware, tak╛e se nemusφte bßt, ╛e to po Φase p°estane fungovat. Cena zdarma p°itom neznamenß ╣patnou kvalitu -- Apache a MySQL jsou naprostΘ ╣piΦky v oboru. 

Dal╣φ v²hodou "Trißdy" je vzßjemnß nakonfigurovanost t∞chto t°φ program∙, tak╛e nenφ t°eba nic p°ed∞lßvat.

Normßln∞ se spustφ instalaΦnφ program. ┌sp∞╣nost instalace se zkontroluje ikonkou "Launch Site", kterß by se m∞la vytvo°it v nabφdce Start - Programs spolu s dal╣φmi ikonami, kterΘ budou u╛iteΦnΘ v dal╣φm v²kladu.

Alternativnφ instalace

Pokud nejste spokojeni s Trißdou, je mo╛nΘ postahovat si jednotlivΘ programy a nakonfigurovat je ruΦn∞. DomovskΘ strßnky program∙ naleznete intuitivn∞. 

DoporuΦuji zm∞nit instalaci Trißdy, pokud internetov² server, na kterΘm budete publikovat, pou╛φvß n∞jak² jin² software ne╛ Apache a MySQL. Na╣t∞stφ je takov²ch mßlo (obΦas se objevφ IIS + ODBC), tak╛e se to m∞nit nemusφ. V╛dy byste se prost∞ m∞li sna╛it, aby va╣e testovacφ konfigurace co nejlΘpe odpovφdala podmφnkßm, kterΘ fungujφ na "ostrΘm" serveru, aby nevznikaly problΘmy po odeslßnφ otestovan²ch strßnek.

Alternativou k Apachi jsou servery od Microsoftu. IIS (Internet Information Server) je takΘ ╣piΦkou v oboru, ale nenφ zdarma. Oproti tomu PWS (Personal Web Server) zdarma je, ale je nic moc. Osobn∞ jsem s nφm nebyl moc spokojen² (ve srovnßnφ s Apachem). 

U databßzφ je spektrum ╣ir╣φ. Na linuxov²ch serverech b²vß Φasto databßze PostgreSQL. Na windowsovsk²ch IIS lze zase p°es rozhranφ ODBC pou╛φt jako databßzi obyΦejnou tabulku Excelu nebo velkou databßzi Accessu (co╛ jde i s Apachem a Trißdou). 

Prßce se serverem Apache

Po instalaci Trißdy se Apache pro Windows spou╣tφ v dosovskΘm okn∞ (Start > Programs > Start Apache; pokud p°φkaz nenajdete, zadejte Start > Spustit a vy╗ukejte C:\Apache\apache.exe). S tφmto oknem se dßle nepracuje. P°ekvapiv∞ na W98 server dßle funguje, i kdy╛ se okno shodφ nßsilφm (co╛ ale nedoporuΦuji).

Co to d∞lß: kdy╛ se te∩ spustφ prohlφ╛eΦ a napφ╣e se http://localhost , tak by se m∞la naΦφst startovnφ strßnka ko°ene dokument∙. Prost∞ se na sv∙j disk nynφ dφvßte p°es http server.

Pokud pracujete na lokßlnφ sφti s konfigurovan²m DNS serverem, m∙╛e se stßt, ╛e http://localhost nebude fungovat. Pak zkuste http:// + jmΘno svΘho poΦφtaΦe, nap°. jß mßm v prßci http://dusan/. Pokud ani to nezafunguje, zkuste svojφ IP adresu, nebo http://127.0.0.1; toto Φφslo je IP adresa ka╛dΘho lokßlnφho poΦφtaΦe.

Ko°en dokument∙

Ko°en dokument∙ (root) je jeden adresß°. 

Ko°en dokument∙ by m∞l obsahovat v╣echny publikovanΘ soubory a skripty. Aby vßm fungovaly PHP skripty, musejφ b²t ulo╛enΘ tady (a v podslo╛kßch - jinak °eΦeno musφ se k nim dßt dostat p°es http). 

Apache se domnφvß, ╛e nejlep╣φ ko°en dokument∙ je adresß° c:\apache\httpd, a tak to tam mß zpoΦßtku nastavenΘ. Dß se nastavit, kter² adresß° bude ko°enem dokument∙ (zm∞nou konfigurace).

Konfigurace Apache

V╣echna nastavenφ serveru Apache se d∞lajφ ·pravou souboru httpd.conf (t°eba programy Notepad, EasyPad, PSPad nebo libovoln²m editorem), kter² se nachßzφ ve slo╛ce c:\apache\conf. Co znamenß kterß direktiva, se dß pochopit z komentß°∙ a nßpov∞d. Dajφ se d∞lat virtußlnφ servery, p°esm∞rovßnφ, logovßnφ a podobnΘ ╣peky. Ka╛dopßdn∞ je to studium na dlouhΘ zimnφ veΦery, se kter²m zatφm nikomu moc nepomohu. V prvnφ chvφli ale nenφ nutnΘ nastavovat nic. 

Nap°φklad zm∞na ko°ene dokument∙ se d∞lß prost∞ p°epsßnφm °ßdku:
DocumentRoot "/apache/htdocs" 
t°eba na 
DocumentRoot "c:/www"

Zm∞ny v konfiguraΦnφm souboru se projevφ a╛ po restartu Apache. Restart se d∞lß t°eba p°φkazem C:\apache\Apache.exe -k restart

Vyhodnocovßnφ PHP

Hlavnφ v²hoda http serveru spoΦφvß v tom, ╛e lze k php soubor∙m p°istupovat i p°es http, tak╛e server bude vyhodnocovat php skripty. Kdo se na php soubory dφvß prohlφ╛eΦem rovnou z disku (bez http:), zaznamenß samoz°ejm² ne·sp∞ch. 

Na drobn² problΘm mohou narazit ti, kdo se p°ipojujφ modemem p°es telefon. Prohlφ╛eΦ Internet Explorer se p°i prochßzenφ strßnek zaΦφnajφcφch na http://localhost/ (obecn∞ v╣echny http: strßnky) nap°ed sna╛φ p°ipojit na Internet. Kdy╛ se mu to zakß╛e, tak se dßle nechce na localhost dφvat. ╪e╣enφm je zadat p°φkaz Soubor - Pracovat offline (zru╣it zatr╛enφ), pop°. zm∞nit nastavenφ p°ipojovßnφ, nebo rad∞ji testovat v Netscape, ten to ned∞lß.

Konfigurace PHP

Ve╣kerΘ nastavenφ PHP skript∙ se d∞lß v souboru php.ini, kter² Trißda umis╗uje do adresß°e C:\apache\php . D°φve se ten soubor jmenoval php3.ini a byl v systΘmovΘ slo╛ce Windows. 

Nenφ t°eba tam nic m∞nit, alespo≥ zpoΦßtku. V²znam jednotliv²ch direktiv b²vß patrn² z komentß°∙. DynamickΘ knihovny jsou nejzajφmav∞j╣φm nastavenφm -- pokud budete chtφt vyu╛φvat n∞jakΘ jinΘ databßze nebo programovΘ knihovny, musφte odpoznßmkovat °ßdek, kter² zaΦφnß ;extension=. Pozor, nastavenφ extension=* pro zahrnutφ v╣ech knihoven podle m²ch zku╣enostφ na Windows nefunguje! Podpora MySQL je v poslednφ distribuci Trißdy u╛ zahrnuta automaticky.

Chcete-li ze svΘho testovacφho serveru odesφlat pomocφ PHP maily, musφte nastavit adresu smtp. Smtp je server, kter² umφ (a je ochoten) vzφt odesφlan² mail a poslat ho do Internetu. Normßln∞ je v php.ini nastaveno smtp = localhost, co╛ ve Windows samoz°ejm∞ nefunguje. Je t°eba nastavit tam adresu smtp serveru, na kter² mßte p°φstup. Pokud se p°ipojujete telefonem, bude sprßvn∞ fungovat smtp server va╣eho poskytovatele p°ipojenφ, nap°. smtp = smtp.volny.cz nebo tak. Pracujete-li na sφti, pora∩te se se sprßvcem, kdo je vß╣ poskytovatel p°ipojenφ nebo zda nemßte vlastnφ smtp server. (Na ostr²ch serverech, kterΘ b∞hajφ na Linuxu, b²vß nastaveno smtp = localhost, co╛ znamenß ten sam² stroj. To je ale stejn∞ jedno, proto╛e na ostrΘm serveru v∞t╣inou nebudete mφt mo╛nost upravovat php.ini, to d∞lß sprßvce.)

Prßce s databßzφ MySQL

Databßzi ke sv²m prvnφm pokus∙m s PHP nepot°ebujete, v∞t╣ina lidφ se ale o PHP zajφmß prßv∞ z toho d∙vodu, ╛e umo╛≥uje databßze vyu╛φvat. 

V Trißd∞ se MySQL spou╣tφ jako slu╛ba Windows (dv∞ma p°φkazy najednou: Start MySQL a Shutdown MySQLv nabφdce Start - Programs). P°ed prvnφm spu╣t∞nφm je nutno spustit program winmysqladmin.exe, ve kterΘm se nastavujφ prßva.

MySQL nenabφzφ pro prßci s daty ╛ßdnΘ super rozhranφ, leda p°φkazov² °ßdek, kam se mohou zadßvat SQL p°φkazy. To leckomu staΦφ (bacha na Φe╣tinu, k≤duje v DOS), pro zaΦßteΦnφka je to ale moc t∞╛kΘ.

PHPMyAdmin

Na╣t∞stφ existuje balφΦek PHPMyAdmin, kter² je takΘ souΦßstφ Trißdy a kter² mß takΘ svoji ikonku v nabφdce start. PHPMyAdmin je cel² napsßn v PHP, tak╛e se automaticky spou╣tφ v prohlφ╛eΦi p°es mφstnφ server. 

PHPMyAdmin je vlastn∞ program pro administrovßnφ mφstnφch databßzφ. Asi tomu nebudete rozum∞t napoprvΘ, ale po°ßd je to lep╣φ ne╛ se od nuly uΦit SQL. Pokud s databßzemi pracujete Φast∞ji, pochopφte princip rozhranφ velmi rychle. 

M∙╛ete si stßhnout moji Φe╣tinu do PHPMyAdmin. Samotnou instalaci phpMyAdmin lze stßhnout odjinud.

Pro prßci s PHP se budete muset Φasem nauΦit jazyk SQL, co╛ je standardnφ  jazyk pro p°φstup ke v╣em normßlnφm databßzφm. (Je tak jednoduch², ╛e jsem se d°φve myln∞ domnφval, ╛e to "S" v "SQL" znamenß simple = snadn²).

Psanφ PHP skript∙

Nebudu se zde zab²vat jazykem jako takov²m. Pouze bych cht∞l p°ipomenout, ╛e pro ·pravu soubor∙ budete pot°ebovat n∞jak² textov² editor. Pokud vφm, modernφ HTML editory v∞t╣inou prßci s PHP aktivn∞ nepodporujφ. Mo╛nß existujφ editory s v∞t╣φ podporou PHP, ale jß je nemßm vyzkou╣enΘ. Pou╛φvßm UltraEdit, Vim nebo HomeSite se zv²raz≥ovßnφm syntaxe, co╛ psanφ v²znamn∞ usnad≥uje.

PHP strßnky nelze psßt v programu FrontPage, proto╛e v╣echny <?vsuvky?>  vyhßzφ.

Soubory PHP majφ r∙znΘ p°φpony. NejΦast∞j╣φ je asi *.php, d°φve se hodn∞ pou╛φvaly *.php3. Dnes jsou k vid∞nφ *.php4. TakΘ se pou╛φvß *.phtml.

Pro prohlφ╛enφ PHP soubor∙ takΘ nestaΦφ normßlnφ dvojklik, ale prohlφ╛enφ p°es prohlφ╛eΦ s adresou zaΦφnajφcφ http://, nap°. http://localhost/cesta/jmenosouboru.php atd.

Dal╣φ informace

V²born² nßvod pro obecnΘ programovßnφ serverov²ch aplikacφ vΦetn∞ ·vodu do PHP a SQL je k nalezenφ na www.kosek.cz/php. Tam je takΘ inzerovßna kniha PHP, kterou zu°iv∞ doporuΦuji (narozdφl od jin²ch knih na toto tΘma). 

Seznam voln²ch server∙, kterΘ podporujφ PHP, znßm pod jmΘnem Janiny odkazy k PHP a MySQL. TamtΘ╛ jsou odkazy na dal╣φ zajφmavΘ zdroje.  

«ßdnß v²uka programovßnφ PHP v Φe╣tin∞, pokud vφm, nenφ nikde na webu natolik ucelenß, aby stßlo za to ji zde zmi≥ovat (stav z lΘta 2002). V∞t╣inou jsou to jenom takovΘ izolovanΘ v²k°iky do tmy jako tento text. Ale mohu se m²lit -- napi╣te mi prosφm odkazy na zajφmavΘ strßnky s kompletnφm nßvodem.

PHPTriad

AnglickΘ informace k Trißd∞ se daly najφt na www.phpgeek.com. Tento projekt je od kv∞tna 2002 umrtven (n∞jak² t²pek to sestavil a udr╛oval asi dva roky, jedin²m ziskem mu bylo jedno reklamnφ triΦko, tak to vzdal), ale programov² balφΦek se dß stßhnout.

Petr Mikula doporuΦil sta╛enφ z adresy
http://prdownloads.sourceforge.net/phptriad/phptriad2-2-1.exe?use_default=cesnet (podzim 2003),
v lΘt∞ 2002 bylo nejlep╣φ pou╛φt download z
http://belnet.dl.sourceforge.net/sourceforge/phptriad/phptriad2-2-1.exe

Pokud Trißdu nechcete stahovat (mß asi 12 MB), tak vy╣la na cΘdΘΦku Φasopisu PC World 2001, v Chipu 12/2000 a urΦit∞ i jinde.

Dal╣φ: Mo╛nosti PHP - nßstin pro zaΦßteΦnφky
Vizte tΘ╛: Programovßnφ strßnek
Odkaz mimo: Webserver PHPTriad (Martin Kopta na Sov∞), P°ehled Φeskoslovensk²ch freeweb∙ s podporou PHP 

o tvorb∞, ·dr╛b∞ a zlep╣ovßnφ internetov²ch strßnek

Pφ╣e Yuh∙, dusan@pc-slany.cz

Hledßnφ:

Jak psßt web: www.jakpsatweb.cz

Pφ╣e Yuh∙: http://dusan.pc-slany.cz, mail: dusan@pc-slany.cz

Poslednφ aktualizace 10.12.2003