LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> PHP (88) - provoz ve Windows

... aneb nemůžete říct, že jsme vás nevarovali.

7.1.2005 15:00 | Petr Zajíc | Články autora | přečteno 26766×

Komerční sdělení: Pořádáme Kurzy PHP

Závěr našeho seriálu bude patřit některým obecnějším tématům souvisejícím s PHP. Dnes se podíváme na problematiku provozu PHP na strojích s operačními systémy Windows. To je velmi diskutované a kontroverzní téma - a asi si říkáte, co tento článek dělá na Linuxsoftu. Přečtěte, uvidíte.

Multiplatformní PHP

PHP bývá označován za multiplatformní záležitost. To je slovo, kterého byste se, pokud jej uslyšíte, měli děsit. Schopnost fungovat na více systémech totiž mnozí uživatelé zaměňují za:

  • schopnost fungovat na více systémech bez problémů
  • schopnost fungovat na více systémech bez úprav

Obojí je samozřejmě nesmysl. Tvrzení, že PHP bude fungovat stejně dobře na více operačních systémech by se dalo přirovnat k tvrzení, že existují celoroční pneumatiky. To přirovnání je velmi trefné - jednak proto, že tomu spousta lidí věří, a jednak proto, že někteří tomu přestanou věřit až v momentě, kdy dojde k havárii.

Pro účely naší úvahy budeme za "multiplatformní" považovat schopnost PHP běžet na operačních systémech Linux a Windows. Není to tak úplně přesné, protože PHP lze provozovat i pod MAC OS, tím se ale v naší úvaze zabývat nebudeme. Osobně bych za hlavní význam multiplatformních aplikací považoval to, že nám umožňují výběr operačního systému, na němž poběží, a ne tedy to, že mohou běžet na více systémech.

Otázka tedy zní: Proč byste si měli vybrat pro PHP Linux - a pokud nechcete nebo nemůžete, jaké problémy při provozování na PHP na Windows vás čekají?

Proč LINUX

Správných odpovědí je mnoho. PHP nejlépe pracuje v kombinaci s webovým serverem Apache, a je to zdaleka nejčastější způsob nasazení PHP v reálné praxi. PHP může běžet jako součást, respektive modul Apache s tím, že přebírá některé z jeho výhod - například škálovatelnost, výkon nebo zabezpečení. Server Apache funguje velmi dobře na Linuxu, protože pro něj byl primárně vyvinut.

Pak je tu samozřejmě otázka ceny. Jestliže můžete mít zdarma PHP a zdarma webový server, komu by se potom chtělo platit za operační systém? Dvě nejčastěji používané databáze v souvislosti s PHP (MySQL a PostgreSQL) fungují rovněž na Linuxu velmi dobře.

Pokračovat bychom mohli snadnou konfigurací, možnostmi rozšiřujících modulů, výkonem v serverovém prostředí a mnoha dalšími faktory. Nicméně, často zkrátka nebudete mít možnost nasadit PHP na linuxový stroj, zejména ne při vývoji. Dobrá, budetet tedy muset provozovat PHP na Windows. Co Vás čeká?

Problémy !

Budete mít potíže. Budete jich mít méně, pokud se zařídíte podle rad v tomto článku, ale budete jich mít ještě méně, pokud přejdete na Linux. Takže tak. Zdaleka nejčastější trable uživatelů píšících PHP kód ve Windows vzniknou tehdy, pokud neznají Linux vůbec a nahrají skripty fungující ve Windows na linuxový server. Jelikož je to poměrně četná skupina uživatelů, nejprve něco postřehů k nim:

Lomítka
Ačkoliv už jsem na toto téma slyšel mnoho nepřesných údajů, ve skriptech můžete používat zpětná i dopředná lomítka. Stylově bude určitě lepší používat vždy lomítka normální, protože se to tak v linuxu dělá.

Názvy souborů
Windows Vám nepovolí nazvat jeden soubor "include.php" a jiný "Include.php" v jedné složce. Linux ano. Měli byste na to myslet ve dvou případech:

  1. Jestliže potřebujete uvést ve skriptech název souboru operačního systému. To je poměrně častá záležitost (include, require, fopen a podobně).
  2. Jestliže kopírujete skripty z Windows na linuxový server pomocí nějakého FTP klienta ve Windows. Někteří klienti změní velikost písmen. TO V LINUXU VADÍ.

Neexistuje "správný" způsob, jak se s tím vyrovnat. Můžete se ale například rozhodnout, že budete v názvech souborů používat pouze malá písmena. Pak problému do značné míry můžete zabránit.

Absolutní cesty
Ve skriptech byste se vždy měli vyvarovat používání absolutních cest, a používat buďto cesty relativní, nebo alespoň cesty sestavené pomocí proměnné $_SERVER["DOCUMENT_ROOT"]. Pamatujte na to, že příkazy ve stylu:

 require ("C:\slozka\soubor.php");

Vám v linuxu fungovat zkrátka nemohou, protože Linux nezná nic takového, jako je disk C ;-)

Nefungující příkazy
Pokud musíte ve vývojovém nebo dokonce produkčním prostředí používat PHP na Windows, pamatujte rovněž na to, že se ochuzujete o některé příkazy a funkce, které jsou v PHP pro Linux (i v samotném Linuxu) zcela běžné a které ve Windows mohou fungovat špatně nebo vůbec. Patří mezi ně například příkaz chmod.

Špatně fungující příkazy
Rozhýbání jiných příkazů může být na Widnows sice docela dobře možné, ale v praxi poměrně obtížné. Mám na mysli například funkci mail. Upřímě řečeno to nemá moc společného se samotným PHP, ale s tím, že pro Windows bude potřeba nainstalovat a nastavit nějaký program pro odesílání pošty, než to vůbec budete moci zkonfigurovat. Ono něco podobného se musí udělat i pro Linux, ale tam je k dispozici více možností a pravděpodobně to bude fungovat již od instalace serveru.

Nutnost doinstalace knihoven
Mnoho PHP funkcí, například funkce pro konverze znakových sad vyžaduje pro správný provoz ve Windows ruční kopírování knihoven, případně jejich registraci v systému Windows. Není to sice nic extrémně obtížného, ale může to znepříjemnit práci.

Vliv prostředí
Práce ve Windows s sebou nese rovněž určité vlivy prostředí - tak třeba:

  • Soubory budou ve výchozím stavu kódovány ve znakové sadě win-1250
  • Funkce pro práci s datem a časem mohou mít někdy "vlastní hlavu"

Odlišnosti v systému
Díky - jak to jen nazvat - "odlišnostem" v jednotlivých verzích operačních systémů Windows (zejména 9x/Me oproti NT/2000/XP) vám nastavení PHP z jednoho stroje nemusí fungovat na stroji jiném. To je významné například v případě, kdy chcete mít doma i v práci stejné prostředí pro vývoj.

Existují ale i dobré zprávy. Například v PHP 5 byly některé věci přidány přímo jako součást samotného PHP enginu, takže se teď nemusejí doinstalovávat a mohou se použít jak v Linuxu, tak i na Windows.

Webový server pro PHP na Windows

S provozem PHP pod Windows souvisí i jiná otázka - a tou je výběr webového serveru. Negativní dopady použití PHP na Windows se dají trochu zmírnit použitím vhodného serverového software. Ačkoli možností je víc, v praxi se používá buďto Internet Information server od Microsoftu, nebo Apache server pro Windows. Pokud použijete IIS, musíte se smířit s tím, že PHP Vám poběží jako interpreter CGI. Vlastně to znamená, že při každém použití PHP se musí načíst konfigurace, spustit soubor php.exe, případně načíst knihovny a provést požadavek, ve všemi těmi negativními dopady na výkon, které si asi umíte představit.

Pozn.: Celé to většinou bude probíhat v operační paměti stroje, takže to nebude tak dramatické, ale stejně je to sosač výkonu.

Dále je potřeba vědět, že při provozu PHP jakožto CGI interpreteru nemůžeme použít HTTP autentifikaci; ta je totiž dostupná pouze tehdy, pokud PHP běží jakožto modul Apache.

K Apache - obecně se dá říci, že Apache server běží na Windows NT systémech relativně bez problémů (ale to se nedá říci o WIN 95/98). Takže, v konfiguraci Windows XP+Apache+PHP se vyvíjet dá, zejména pokud se jedná o méně náročné věci.

A co webhosting ?

Webhosteři, a to i ti velcí, někdy nabízejí provozování PHP na internetových serverech v konfiguraci, která je krajně diskutabilní - právě s Internet information serverem a PHP jakožto CGI. K několika aplikacím tohoto typu jsem se dostal a věřte - budete se, zejména při náročnějším zpracování dat sektávat s chybami typu "CGI timeout".  Pokud si můžete vybrat - třeba pokud se vyvíjí webová aplikace a zároveň se hledá webhosting - vyberte si raději linuxový hosting.

Přestože to u hostingu může přinášet poměrně značná omezení, má nasazení PHP na windowsové servery svou logiku. Umožňuje Vám to přepsat napříkad aplikace z Active server pages (asp) do PHP, aniž byste hýbali zbytkem webu. Věřme, že to je jeden z hlavních důvodů, proč se PHP na produkčních serverech takto používá. V takovém případě je to jen dobře. Abych se webhosterů zastal - většina z těch, kterí to dělají, mají i rozumnější, linuxové servery.

Závěr

Pro vývoj aplikací, zejména jednoduchých, by prostředí Windows mohlo s jistými omezeními pro PHP dostačovat. Pro provoz webu bych ale jednoznačně doporučoval linuxové prostředí pro jeho výkon, stabilitu a bezpečnost. PHP bych upřednostňoval používat v režimu, kdy běží jakožto modul serveru Apache - je to ostatně typická a léty prověřená konfigurace.

Verze pro tisk

pridej.cz

 

DISKUZE

Námitky 10.1.2005 02:40 Jan Houštěk




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

15.5.2017 23:50 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě DIY, CNC, SDR nebo morseovka? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 18. května od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5).
Přidat komentář

12.5.2017 16:42 /Honza Javorek
PyCon CZ, česká konference o programovacím jazyce Python, se po dvou úspěšných ročnících v Brně bude letos konat v Praze, a to 8. až 10. června. Na konferenci letos zavítá např. i Armin Ronacher, známý především jako autor frameworku Flask, šablon Jinja2/Twig, a dalších projektů. Těšit se můžete na přednášky o datové analytice, tvorbě webu, testování, tvorbě API, učení a mentorování programování, přednášky o rozvoji komunity, o použití Pythonu ve vědě nebo k ovládání nejrůznějších zařízení (MicroPython). Na vlastní prsty si můžete na workshopech vyzkoušet postavit Pythonem ovládaného robota, naučit se učit šestileté děti programovat, efektivně testovat nebo si v Pythonu pohrát s kartografickým materiálem. Kupujte lístky, dokud jsou.
Přidat komentář

2.5.2017 9:20 /Eva Rázgová
Putovní konference československé Drupal komunity "DrupalCamp Československo" se tentokrát koná 27. 5.2017 na VUT FIT v Brně. Můžete načerpat a vyměnit si zkušenosti z oblasti Drupalu 7 a 8, UX, SEO, managementu týmového vývoje, využití Dockeru pro Drupal a dalších. Vítáni jsou nováčci i experti. Akci pořádají Slovenská Drupal Asociácia a česká Asociace pro Drupal. Registrace na webu .
Přidat komentář

1.5.2017 20:31 /Pavel `Goldenfish' Kysilka
PR: 25.5.2017 proběhne v Praze konference na téma Firemní informační systémy. Hlavními tématy jsou: Informační systémy s vlastní inteligencí, efektivní práce s dokumenty, mobilní přístup k datům nebo využívání cloudu.
Přidat komentář

15.4.2017 15:20 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě IoT a radiokomunikace? Přijď na sraz spolku OpenAlt, který se bude konat ve středu 19. dubna od 18:30 v Šenkovně (Sokolská 60, Praha 2).
Přidat komentář

5.3.2017 19:12 /Redakce Linuxsoft.cz
PR: 23. března proběhne v Praze konferenci na téma Cloud computing v praxi. Hlavními tématy jsou: Nejžhavější trendy v oblasti cloudu a cloudových řešení, Moderní cloudové služby, Infrastruktura současných cloudů, Efektivní využití cloudu, Nástrahy cloudových řešení a jak se jim vyhnout.
Přidat komentář

27.2.2017 22:12 /František Kučera
Pozvánka na 137. sraz OpenAlt – Praha: Tentokrát jsme si pro vás připravili neobvyklou akci. Ve středu 1.3. v 17:30 nás přivítá sdružení CZ.NIC ve svých prostorách v Milešovské ulici číslo 5 na Praze 3, kde si pro nás připravili krátkou prezentaci jejich činnosti. Následně navštívíme jejich datacentrum pod Žižkovskou věží. Provedou nás prostory, které jsou běžnému smrtelníkovi nedostupné!
Po ukončení prohlídky se všchni odebereme do hostince U vodoucha, Jagelonská 21, Praha 3 pochutnat si na některém z vybraných piv či dát si něco na zub. Rezervaci máme od 19:30, heslo je OpenAlt.
Ale pozor! Do prostor datového centra máme omezený přístup, dostane se tam pouze 10 lidí! Takže kdo přijde dříve, ten má přednost, a občanky s sebou! Kdo nebude chtít na prohlídku datového centra, může se pomalu přesunout do hostince U vodoucha a u nepřeberné nabídky piv počkat na ostatní.
Přidat komentář

18.1.2017 0:49 /František Kučera
Členové a příznivci spolku OpenAlt se pravidelně schází v Praze a Brně. Fotky z pražských srazů za uplynulý rok si můžete prohlédnout na stránkách spolku. Příští sraz se koná už 19. ledna – tentokrát je tématem ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. Také budete mít příležitost si prohlédnout pražský hackerspace Brmlab.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

15.6.2017 9:34 / Ondřej Havlas
php,

10.6.2017 10:39 / Temple
sell home for cash

11.5.2017 23:32 / lelo
Re: Problém se správcem balíčků

11.5.2017 5:45 / davd mašek
Re: Problém se správcem balíčků

10.5.2017 22:54 / lelo
Re: Problém se správcem balíčků

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2017) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze