IIS 7 s FastCGI a PHP 5 - ideální kombinace pro Windows
MyEgo.cz
IIS 7 s FastCGI a PHP 5 - ideální kombinace pro Windows
Přešel jsem na provozování PHP 5 pod Microsoftím IIS 7, namísto Apache. Nejnovější verze Microsoftího IIS7 webového serveru je výrazně výkonově i z pohledu možností konfigurace lepší, než co může nabídnout open-source produkt. IIS7 je zdarma dostupný ve všech instalacích Windows Vista a Windows 2008 Server.
Potřeboval jsem spojit provozování a vývoj ASP.NET a PHP aplikací pod jedním serverem, a to pod Apache prostě nejde. IIS7 má nativní podporu pro provozování PHP aplikací, za pomoci standardního FastCGI modulu. Microsoft zde dokonce spolupracoval se Zendem, samotný FastCGI modul zajišťuje thread-safe prostředí, takže můžete použít rychlejší non-thread safe buildy PHP.
Výsledkem je výrazně výkonnější runtime prostředí pro PHP, než to umí Apache.
Kompatibilita není problém, testoval jsem zatím dva nejnovější rozsáhlé weby, a vše funguje 100% bez jakékoliv úpravy PHP kódu mezi Apache a IIS7.
Jediným problémem, který jsem dříve řešil, byla absence podpory pro .htaccess. IIS7 má nově ovšem vlastní mod_rewrite ekvivalent, nazvaný URL Rewrite Module, dokonce umí importovat .htacces z Apache do vlastních pravidel.
A pokud chcete kompatibilitu bez importu pravidel (tedy nativní podporu pro .htaccess), umí to komerční (cena $99) modul od Heliosu ISAPI_Rewrite3...
Doporučená dokumentace:
- Installing IIS 7.0 on Windows Vista
- Installing IIS 7.0 from the Command Line
- Using URL Rewrite Module
- ISAPI_Rewrite 3 Documentation
- Using FastCGI to Host PHP Applications on IIS 7.0
Kombinaci IIS7 + ASP.NET + PHP via FastCGI + ISAPI_Rewrite nebo URL Rewrite doporučuji, je to nejflexibilnější kombinace pro provozování a vývoj téměř libovolné webové aplikace.
Ahoj, na IIS 7 jsem si nainstaloval na konci článku zmíněný Helicon ISAPI Rewrite, s podporou .htaccess jsem naprosto spokojen, nicméně bez problému to funguje pouze v případě, že obsah webu je uložen lokálně (např. c:\inetpub\web1\). V okamžiku, kdy vytvořím web, jehož obsah je na sdíleném síťovém fileserveru (např. \\fileserver\inetpub\web1\), chová se to jako by .htaccess v rootu webu nebyl, tzn. místo rewrite to vrací klasické 404. V dokumentaci jsem k tomu nic nenašel, proto bych se chtěl zeptat, zda někdo podobný problém už řešil. Za radu nebo link vedoucí k popisu řešení předem díky.
Znamená to, že PHP je zde v podstatě 32bitové?