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 programovací jazyk vsuvek, které se dají vkládat do obyčejných HTML souborů (zjednodušeně řečeno). 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ů (převážně 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 nebo IIS
  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 ostrého 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ší. Nejčastěji vidím, že si lidé s PHP hrají na webzdarma.cz.

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 (tomu se říká podpora). Přečtěte si co požadovat od hostingu a ceny hostingů s PHP.

Pokud máte trvalé připojení k Internetu, nemusíte si dělat testovací server, můžete vyvíjet rovnou na ostrém serveru. Možná to je dobré pro aplikaci typu "hello world", ale pro vážnější pokusy to není úplně dobrý nápad. Zejména z důvodů zálohování, testování a rychlosti práce se testovací instalace doporučuje. Funguje-li domácí testovací server stejně jako ten internetový (dá se to nastavit), PHP soubory se pak na server posílají normálně (zpravidla přes FTP). 

Nejsnazší domácí instalace

Existují relativně snadné instalace i pro uživatele Windows: balíčky programů PHPTriad, PHP Home, Intranetový server nebo EasyPHP. Obsahují právě ty tři nezbytné součásti každé windowsovské instalace: 

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

Stačí si nějaký balíček vybrat:

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 špičkové profesionální programy. 

Další výhodou zmíněných balíčků je vzájemná nakonfigurovanost těchto tří programů, takže není třeba nic předělávat.

V případě Triády se normálně 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. Podobně i u jiných balíčků.

Alternativní instalace

Pokud nejste spokojeni s balíčky instalací, je možné postahovat si jednotlivé programy (Apache, PHP, MySQL) a nakonfigurovat je ručně. Domovské stránky programů naleznete intuitivně. 

Doporučuji změnit instalaci balíčků, 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). Podobných věcí existuje více, asi je třeba se doptat kamarádů, jaké mají zkušenosti. Také pamatujte, že tato stránka může zastarat a objeví se něco lepšího.

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 svoji IP adresu, nebo http://127.0.0.1; přesně toto číslo je IP adresa každého lokálního počítače.

Může se také teoreticky stát, že se Apache bude třískat s jinou aplikací, která náhodou také poslouchá na portu 80, prý třeba Kazaa. Řešením je buď tu aplikaci odstřelit, nebo do httpd.conf nastavit třeba Port 8080 a pak se dívat na adresu http://localhost:8080.

Kořen dokumentů

Kořen dokumentů (DocumentRoot) 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 podadresáří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 v httpd.conf).

Konfigurace Apache

Všechna nastavení serveru Apache se dělají úpravou souboru httpd.conf (otevřít se dá třeba programem Notepad, EasyPad, PSPad nebo libovolným podobným editorem), kterýžto soubor se obvykle nachází ve složce c:\apache\conf\. Co znamená která direktiva, se dá pochopit z komentářů a nápověd. (Mříž # na začátku řádku je komentář.) 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, které přesahuje záměr tohoto textu. V první chvíli ale není nutné nastavovat nic. 

Například změna kořene dokumentů (to je ten adresář, do kterého se dávají prohlížené stránky) 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 či jiném prohlížeči, který to nedělá.

Konfigurace PHP

php.ini

Veškeré nastavení PHP skriptů se dělá v souboru php.ini, který například Triáda umisťuje do adresáře C:\apache\php, jiné balíčky někam do svého adresáře. Dříve se ten soubor jmenoval php3.ini a byl v systémové složce Windows. Čert ví, kde bude ve vaší instalaci, zkuste ho prostě najít.

V souboru php.ini obvykle není třeba 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ích distribucích různých instalačních balíčků už zahrnuta automaticky.

Register_globals

Pokud instalace využívá PHP4, tak tam existuje direktiva Registrer_globals. Normálně je nastavená na off, což znemožní přebírání proměnných z adresy ve tvaru $proměnná. Pokud jste začátečníci, nastavte si register_globals = on, je to pohodlnější. Jestliže chcete nechat register_globals = off, proměnné budou přístupné ve tvaru $_GET["proměnná"].

Nastavení SMTP

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

Další poznatky o SMTP.

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, v emulaci DOSu 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 jiných balíčků a který má často také svoji ikonku v nabídce start nebo v jiném rozhraní. PHPMyAdmin vypadají jako webové stránky běžící na lokálním počítači, které pomocí mnoha různých formulářů dovolují vytvářet a spravovat databáze na místním počítači. Celý phpMyAdmin je 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. 

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 PSPad, 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í. Od verze 2003 už je to v pohodě, ale stejně to není dobrý nápad.

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

Koukněte se hlavně na odkazy na články o PHP. Sesbíral jsem tam spoustu odkazů na zdroje.

Pokročilejší autory PHP skriptů bych rád odkázal na výborný blog Jakuba Vrány PHP triky.

Výborný (třebaže trochu zastaralý) 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.

Články o PHP

Žádná výuka programování PHP v češtině, pokud vím, není nikde na webu natolik ucelená, aby stálo za to ji soustavněji studovat. 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. Odkazy sbírám na katalogové stránce o PHP.

EasyPHP

Download EasyPHP, můj návod na EasyPHP.

PHP Home

Domovská stránka: http://sourceforge.net/projects/phphome/

Intranetový server

Intranetový server od Miloslava Ponkráce je vhodný na testování PHP.

VertigoServ

Návod na instalaci VertigoServ, což je taky balíček Apache, PHP a MySQL.

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),

Na jaře 2004
http://prdownloads.sourceforge.net/sourceforge/phptriad/phptriad2-2-1.exe

 

Reklama

www.webhosting-c4.cz, webhosting s doménou v ceně. 20GB

o tvorbě, údržbě a zlepšování internetových stránek

Návody HTML CSS JavaScript Články Ostatní

Encyklopedie FrontPage Reklama PHP Server

Jak psát web píše Yuhů, Dušan Janovský. Kontakt.