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 31104×
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:
- 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ě).
- 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
|
Příspívat do diskuze mohou pouze registrovaní uživatelé.
|
|
Vyhledávání software
Vyhledávání článků
28.11.2018 23:56 /František Kučera Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1
12.11.2018 21:28 /Redakce Linuxsoft.cz 22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář
6.11.2018 2:04 /František Kučera Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
4.10.2018 21:30 /Ondřej Čečák LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář
18.9.2018 23:30 /František Kučera Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
9.9.2018 14:15 /Redakce Linuxsoft.cz 20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business.
Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář
12.8.2018 16:58 /František Kučera Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář
16.7.2018 1:05 /František Kučera Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář
Více ...
Přidat zprávičku
Poslední diskuze
31.7.2023 14:13 /
Linda Graham iPhone Services
30.11.2022 9:32 /
Kyle McDermott Hosting download unavailable
13.12.2018 10:57 /
Jan Mareš Re: zavináč
2.12.2018 23:56 /
František Kučera Sraz
5.10.2018 17:12 /
Jakub Kuljovsky Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?
Více ...
|