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ů. 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. 

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. téměř nutnou podmínkou je 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ý udělat 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. Ale už třeba z důvodů zálohová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ě 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. Zdarma přitom neznamená špatnou kvalitu -- Apache a MySQL jsou š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

Samozřejmě 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 (vlastně neznám žádný), 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

 Apache pro Windows se 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 programem Notepad), který se nachází ve složce 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. 

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í telefonem. Prohlížeč 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 současné 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. 

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. 

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í. Asi existují editory s podporou PHP, ale já je nemám vyzkoušené. Já 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.

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í už i *.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. 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, ale programový balíček se dá stáhnout např. na http://prdownloads.sourceforge.net/phptriad/phptriad2-2-1.exe 
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

Píše Yuhů
dusan@pc-slany.cz
Jak psát web O tvorbě, údržbě a zlepšování internetových stránek.

Základy HTML CSS FrontPage JavaScript

Hledání


Rozšířené


Jak psát web: http://dusan.pc-slany.cz/internet/

Píše Yuhů: autorova stránka, mail: dusan@pc-slany.cz

Poslední aktualizace 04.08.2002