IIS 7 s FastCGI a PHP 5 - ideální kombinace pro Windows

MyEgo.cz

home foto blogy mywindows.cz kontakt

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.

IIS7 s FastCGI a PHPIIS7 s FastCGI a PHP

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:

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.


Komentáře

  1. 1 Ladislav Vojtíšek 06.12.08, 03:12:23
    FB

    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.

  2. 2 Petr Řezníček 23.01.09, 04:01:20
    FB

    Znamená to, že PHP je zde v podstatě 32bitové?