Začneme asi tím, na co se většina PHP programátorů zeptá hned na začátku: Proč používat Windows Server 2008 a IIS 7 pro hostování PHP aplikací? Odpovědí bude více.
- Mohu kombinovat to nejlepší z PHP a .NET Framework – díky modulární stavbě IIS 7.0 serveru mohu například do existující PHP aplikace přidat .NET modul, který se bude starat o ověření uživatele proti Windows doméně.
- Nové obchodní příležitosti – pokud má zákazník již existující síťovou infrastrukturu postavenou na platformě Microsoft Windows, bude ji chtít využít. Namísto toho, aby do ní přidával další prvky, na které nemá administrátory.
- Jako databázový server mohu použít Microsoft SQL Server 2008 – databázový ovladač SQL Server 2005/2008 pro PHP je postaven na nativním ovladači SQL Client. Také můžete využít i jiných služeb, než je databázové jádro, např. Reporting Services pro generování tiskových sestav.
- Převážná většina PHP programátorů programuje na Microsoft Windows – není proto problém ladit aplikace přímo v prostředí, kde budou nasazeny. IIS 7 je součástí Windows Vista i připravovaných Windows 7.
- Snadný vývoj modulů pro IIS 7 – moduly pro IIS 7 mohou být postaveny na .NET Framework, což výrazně usnadňuje jejich vývoj a bezpečnost díky managed kódu.
- Snadná administrace pomocí Windows PowerShell – jak Windows Server 2008, tak IIS 7 jsou připraveny pro automatizovanou i vzdálenou správu pomocí Windows PowerShell.
- Přenositelnost konfigurace IIS 7 – pokud potřebujete identicky zkonfigurovat dva IIS 7, můžete je nastavit tak, aby používaly stejný konfigurační soubor umístěný ve sdíleném datovém úložišti.
- Každá aplikace na IIS 7 může běžet ve svém bezpečnostním kontextu – pomocí Application Pools lze od sebe oddělit jednotlivé aplikace, aby pád jedné neovlivnil chod ostatních. To je zejména důležité u hostování aplikací třetích stran.
- Vysoká bezpečnost IIS 7 – statistiku chyb IIS 7 si můžete sami prohlédnout na http://secunia.com/advisories/product/17543/?task=statistics a případně porovnat s jinými webovými servery.
Zprovoznění PHP na IIS 7
Podpora PHP, tedy modul FastCGI, je standardní součástí IIS 7 na Windows Serveru 2008, Windows Vistě SP1 a Windows 7. Stačí zapnout podporu CGI pro IIS.
Windows Vista, Windows 7: Start – Ovládací panely – Programy – Zapnout nebo vypnout funkce systému Windows.
Windows Server 2008: Povolit roli Web Serveru (IIS)
Dále je třeba stáhnout poslední Non-thread-safe verzi PHP pro Windows a rozbalit ji do libovolného adresáře. Pokud ji rozbalíte jinam než do c:\php, bude třeba upravit php.ini. Nyní můžeme přistoupit ke konfiguraci IIS 7. U aplikace, kde potřebujete podporu PHP, je třeba přidat mapování přípony php na modul FastCGI a interpret PHP. To můžete udělat pomocí konzoly pro správu IIS 7 nebo úpravou souboru web.config příslušné aplikace.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="PHP" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\php\php-cgi.exe" resourceType="Unspecified" />
</handlers>
</system.webServer>
</configuration>
SQL Server 2008 a PHP
Postup instalace a konfigurace SQL Serveru 2008 si můžete prohlédnout na výukovém videu. Ovladač SQL Serveru 2005/2008 pro PHP najdete zde. I když je v názvu uveden SQL Server 2005, ovladač funguje i s SQL Serverem 2008 a pro připojení se používá SQL Native Client. Instalace obsahuje dvě knihovny ovladače (php_sqlsrv.dll /non-thread safe/, php_sqlsrv_ts.dll /tread safe/) a dokumentaci. Knihovny nakopírujte k ostatním knihovnám PHP, typicky adresář ext v instalačním adresáři PHP a příslušnou verzi knihovny přidáte do php.ini.
Další užitečné informace najdete zde.
Štěpán Bechynský,
Developer Evangelist, Microsoft