Webserver a interaktivní shell v PHP jako pomůcky pro vývojáře

PHP obsahuje od verze 5.4 zabudovaný webserver. O něco starší je pak interaktivní shell (od PHP 5.1). Stojí za to o nich vědět, mohou vám pomoci s vývojem jednoduchých skriptů i větších aplikací.

Pokud občas potřebujete spustit a odladit jednoduchý skript nebo otestovat nějakou část většího projektu, pak asi použijete nějakou metodu ladění přímo ve svém kódu, případně příslušnou část vykopírujete do samostatného souboru a spustíte. U větších celků pak možná založíte na webovém serveru další projekt, kde budete ladit.

Vykopírování části skriptu mimo hlavní projekt a nastavení klasického webserveru (typicky Apache) může docela zdlouhavé. PHP 5.4 již obsahuje vestavěný webový server, který můžete k podobným účelům využít. Spouští se velmi jednoduše prostřednictvím příkazového řádku a poslouží pro běh jednodušších aplikací. Tím mám na mysli projekty, které nepočítají s pokročilými direktivami Apache, podporou mod_rewrite, zpracováváním HTP hlaviček a podobně. Většinu z toho PHP web server nenabízí, nebo poskytuje v omezené podobě.

Web server zabudovaný v PHP

Abyste mohli PHP bez problémů používat, zařaďte jej ve svém systému pro proměnné PATH. Jak na to ve Windows mám zmíněno třeba v článku Windows Azure a PHP: jak na web v cloudu krok za krokem. Pak stačí do příkazového řádku zadat php -v a měli byste uvidět verzi PHP, kterou používáte.

Základní použití web serveru v PHP je následující. Zadáte příkaz ve tvaru:

php -S adresa:port -t slozka

Adresa může být například localhost, ale též může být vyjádřena číselně jako 0.0.0.0 (web server by pak měl být dostupný z dalších počítačů v síti, ale nezkoušel jsem). Port je asi jasný, jde o číslo komunikačního portu, na kterém bude web server PHP naslouchat. Použijte něco jiného, než standardní 80, abyste se vyhnuli případnému konfliktu s běžícím Apache.

Parametr -t umožňuje specifikovat složku, ze které bude web server načítat data pro zobrazení ve webovém prohlížeči. Cestu zadávejte v absolutním tvaru.

Abychom to tedy vyzkoušeli, vytvořte si soubor index.php, do kterého vložíte kód <?php phpinfo(); ?>. Uložte jej někam na disk a zkuste na příkazovém řádku zadat následující:

php -S localhost:8080 -t c:\cesta-ke-slozce-se-souborem

Pokud nenastane nějaký problém, pak po zadání adresy http://localhost:8080 do webového prohlížeče uvidíte informaci o konfiguraci PHP ve vašem počítači.

PHP web server

Všimněte si, že v příkazovém řádku se s každým přístupem ke stránce na tomto webovém serveru zobrazí informace o času přístupu a načítaném souboru.

PHP web server

Výhoda oproti Apache je v tom, že můžete velice rychle zprovoznit web server pro testování různých skriptů z různých adresářů. Nemusíte přitom vytvářet žádné konfigurační soubory a něco někde složitě nastavovat.

Jako další zajímavé využití webserveru v PHP se nabízí vytvoření lokálních serverů sloužících pro provoz webových aplikací, které se ale tváří jako desktopové. Vytvoříte-li nějaký dávkový soubor, který spustí php s potřebnými parametry a následně otevře webový prohlížeč s připravenou aplikací, pak můžete uživatelům nabízet nějaký lokální obsah, aniž byste potřebovali internet.

Nabízí se tedy řešení pro různé autoruny a podobné jednoduché aplikace. Ještě zajímavější to může být, pokud si třeba v C# a Visual Studiu sestavíte vlastní webový prohlížeč, který ale bude mít jen rámeček okna a celou jeho plochu bude vyplňovat webová stránka. Pak uživatel nemusí poznat, že nepracuje s klasickou desktopovou aplikací.

Na druhou stranu tvůrci PHP zmiňují, že tento vestavěný web server je určen jen pro vývojářské pokusy a neměl by být nasazen do produkčního prostředí. Zatím se zdá, že funguje dobře. Zkoušel jsem v něm například jednoduchý redakční systém GetSimple, který vše zapisuje do XML a fungoval bez nejmenších problémů.

Interaktivní shell v PHP

Další zajímavou pomůckou pro vývojáře pracujícího s PHP může být interaktivní shell. Nejde o záležitost nějak novou, ale dovolím si ji zde připomenout. Interaktivní shell spustíte z příkazového řádku zadáním:

php -a

Nyní můžete do příkazového řádku psát a vkládat příkazy kódu PHP a sledovat jejich výstup. Potřebujete-li něco rychle odladit, aniž byste spouštěli celý skript, je to neocenitelný pomocník.

Ovšem pozor. Pokud vaše instalace PHP není zkompilována s příznakem --with-readline, pak se po zadání php -a neobjeví výzva php >, ale info o tom, že jste spustili interaktivní režim. To je něco trošku jiného, než je interaktivní shell. Příkazy zde píšete normálně jako do editoru a jejich výstup uvidíte až poté, co stisknete Ctrl+D (ve Windows možná dvakrát za sebou). Zápis do interaktivního režimu také musíte začít znaky <?php, zkrátka podobně, jako byste tvořili soubor zmixovaný z HTML a PHP.

Interaktivní režim PHP

Další informace najdete na webových stránkách PHP:

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru