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 - 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 kódu, který se dá vkládat do obyčejných HTML souborů (zjednodušeně řečeno). Aby se kód poznal od HTML, vkládá se mezi značky <?php a ?>. Symbolicky zapsáno:

html zdroj, <?php vložený PHP kód ?> a zase html zdroj

Soubory s takovými vsuvkami musejí mít jinou příponu než .html. Nejčastěji se pojmenovávají příponou *.php (a jinými), podle které server pozná, že v nich má hledat PHP kódy. Při požadavku na php stránku server prochází soubor a php kódy programově vyhodnocuje, takže klientovi odesílá už čisté HTML. 

Princip serverového skriptování

Na výstup dorazí:

html zdroj, výsledek vloženého PHP kódu a zase html zdroj

Předchozí kód byl samozřejmě symbolický. Ale tohle už je funkční příklad nejjednoduššího příkazu echo:

html zdroj, <?php echo "hello world z PHP"; ?> a pokračuje html

vyhodnotí se to takto:

html zdroj, hello world z PHP a pokračuje 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ů (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 úplně 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 tak 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ů AMMPS, EasyPHP a podobné. 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 budete muset platit nebo že se to hned rozbije. 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ě EasyPHP se normálně spustí instalační program. Já postupuju podle svého návodu na instalaci EasyPHP. 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 - nově spíše MariaDB) 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

phpinfo()

Phpinfo() je normální příkaz jazyka PHP. Vkládá se prostě do stránky a vypíše velkou tabulku s konfigurací.

<?php phpinfo() ?>

Z výsledku pak poznáte, jak je PHP nastavené. Měnit nastavení můžete v souboru php.ini.

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. Informace o umístění php.ini by měla být v phpinfo().

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 a MariaDb je v posledních distribucích různých instalačních balíčků už zahrnuta automaticky.

Když php.ini změníte, například když přidáte knihovnu nebo rozšíření, je potřeba restartovat webový server, jinak se změny neprojeví.

Další informace o konfiguraci php přes php.ini: https://php.baraja.cz/info

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

Adminer

Lepší než PHPMyAdmin je nástroj Adminer. Je to jediný php soubor, takže ho stačí nakopírovat. Já už raději pracuji s Adminerem, protože umí všechno podstatné a funguje lépe.

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 Notepad ++ se zvýrazňováním syntaxe, což psaní významně usnadňuje. Dostal jsem doporučení také na programy SublimeText a zejména PhpStorm, který prý používají profesionálové.

PHP nelze psát ve Wordu, protože Word neumí tvořit textové soubory. PHP stránky nelze psát ani v programu FrontPage, protože všechny <?php vsuvky ?> vyhází. Od verze 2003 už je to v pohodě, ale stejně to není dobrý nápad.

Pro prohlížení PHP souborů také nestačí normální dvojklik a otevření v normálním prohlížeči. Aby PHP skripty fungovaly, musejí se zobrazovat přes prohlížeč s adresou lokálního serveru začínající http://, např. http://localhost/cesta/jmenosouboru.php atd.

Další informace

Ve čtení můžete pokračovat ve článku, kde uvádím možnosti PHP. Taková trochu reklama, co s tím jde všechno udělat (zdaleka ne vyčerpávající).

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

Český manuál na PHP je spíš učebnice než manuál. Napsal to Jan Barášek, kterému taky děkuju za připomínky k tomuto textu.

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

Pro starší verze PHP (do verze 5.6) existuje 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). Principy popsané v knize jsou platné stále, ale od verze PHP 7.0 se hodně změnilo a uvedené ukázky nemusí často fungovat.

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

PHPTriad

Tento návod kdysi pojednával primárně o balíčku PHP Triad. Pokud ho hledáte, tak vězte, že mi už nefunguje, takže jsem odkazy na něj a zmínky o něm z tohoto článku odstranil. Momentálně používám místo PHPTriad EasyPHP.

EasyPHP

Download EasyPHP, můj návod na EasyPHP

 

Reklama

www.webhosting-c4.cz, extra rychlý SSD webhosting s doménou v ceně
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.