Pro PHP na Windows 2008 / IIS7 potřebujete Zend Server
MyEgo.cz
Pro PHP na Windows 2008 / IIS7 potřebujete Zend Server
Webdesign, CMS
09.04.09
Tento týden jsem v praxi otestoval hromadu různých kombinací PHP a akcelerátorů na Windows 2008 Serveru s IIS7. Pár poznatků o tom, co dělat a nedělat:
- non-TS (non-thread-safe) verze PHP je na Windows s FastCGI (které se samo stará o thread-safe prostředí) zhruba o 30% rychlejší než TS verze, použijte pokud možno vždy non-TS verzi
- verze PHP z PHP.net není v praxi to samé (i ve stejném vydání 5.2.9) co přímo od Zendu, ta z PHP.net vykazovala brutální memory leaks (php-cgi.exe nabobtnal během 2 hodin z 20MB na 300MB), zatímco verze od Zendu ne
- eAccelerator je mírně pomalejší než Xcache - na Windows zvláště proto, že potřebuje TS verzi PHP (non-TS binárka není k dispozici)
- eAccelerator není rovněž 100% stabilní a občas (10x denně), shodil celý php-cgi.exe proces a vyhodil segmentation fault (IIS7 jej ihned nahodí znovu, ale z logu je to vidět)
- Xcache pro změnu nepracuje úplně korektně s pamětí při použití více FastCGI procesů a občas dochází k locknutí
- oproti tomu Zend Optimizer+ je na Windows 2008 Serveru s IIS7 dokonale stabilní a server s ním funguje doslova božsky a opravdu rychle - vytížení IIS7 stroje kleslo po nasazení Zend Serveru při stejném množství uživatelů z cca 30% na 10% (oproti non-TS verzi bez akcelerátorů)
Vyplývá z toho v podstatě jedno - pokud provozujete opravdu rozsáhlý web s IIS7 + SQL Server 2008 (nesmírně výkonná a 100% stabilní databáze, ale o tom později), stáhněte si Zend Server, a případně i zaplaťte support. Vyplatí se to :-)
Mimochodem, žádné nahoře zmíněné řešení nevykazuje praktický problém, pokud testujete v pár desítkách až stovce uživatelů. Uvedené platí pro vysokou zátěž a desítky pageviews denně na uživatele.
Nenahrazuje Zend Server jakožto aplikační server ISS?
Z článku to vypadá jako kdyby to běželo najednou.
Nebo se jednou pouze o ten zmíněný Zend Optimizer. Pak ale nechápu tu zmínku o Zend Serveru.
Díky za vysvětlení.
[1] Zend Server má řadu komponent. My z něj používáme jen jeho verzi PHP, extensions, a pak zejména Zend Optimizer+ (bytecode kompilátor a optimalizátor skriptů), následně toto PHP běží jako FastCGI pod IIS7 a přes SQL Server Driver for PHP se napojuje na SQL Server 2008 databázi.
Zdraví mám také virutuální W2K8 s IIS7 koukal jsem se i po Zend Serveru ale našel jsem pouze x86 verzi a nedaří se mi najít x64... Nevíte kde se dá sehnat? Existuje vůbec? Nebo to funguje s x86 verzí?