Installieren wir ein aktuelles PHP (7.2 in diesem Fall) auf einem Windows Server 2016 in 64bit. Da wir den IIS nutzen und ein lokales CGI-Script-Handling einrichten wollen, nutzen wir die NTS (Non Thread Safe) Variante.
Auf die Unterschiede zwischen „Thread Safe“ und „Non Thread Safe“ gehen wir hier nich genauer ein. Schnelle Admins wissen aber:
- Apache +
LoadModule
: Thread Safe - Apache + FastCGI: Non-Thread Safe
- IIS: Thread Safe
- IIS + FastCGI: Non-Thread Safe « Diese Anleitung
Installation von PHP 7.2 auf Windows Serrver 2016 (IIS)
- Windows Server 2016 installieren+updaten, IIS und Tools hinzufügen. Die Installation dauert einen Moment. Der Telnet-Client ist nicht zwingend notwendig, aber oft hilfreich.
PS C:\> Import-Module servermanager PS C:\> Install-WindowsFeature -name web-server,web-cgi –IncludeManagementTools PS C:\> Add-WindowsFeature telnet-client
- PHP herunterladen und installieren: https://windows.php.net/download/. „VC15 x86 Non Thread Safe„. Wir empfehlen 32bit (x86) wegen der Extensions, es gibt noch nicht alle Extensions in x64. Jetzt grade aktuell war PHP in der Version 7.2.9.
- Visual C++ 2015 Runtime Update 3 RC (oder auch gleich 2017) in x86 und x64 herunterladen und installieren: https://www.microsoft.com/DE-de/download/details.aspx?id=52685
- Die PHP ZIP-Datei (als Administrator) entpacken (z.B. „%Program Files (x86)%\PHP“)
- Kopieren der „php.ini-development“ in die „php.ini“
PS C:\Program Files (x86)\php-nts-x86> Copy-Item .\php.ini-development .\php.ini2
- PHP.ini bearbeiten
error_log = C:\inetpub\logs\php_errors.log max_execution_time = 60 max_input_time = 90 memory_limit = 256M default_charset = "UTF-8" upload_tmp_dir = "C:\inetpub\temp\IIS Temporary Compressed Files" upload_max_filesize = 16M allow_url_fopen = Off extension=php_wincache.dll
- Den PHP Interpreter zur System-PATH-Variable hinzufügen
- Systemeigenschaften > Erweitert > Umgebungsvariablen > Systemvariablen > Eintrag „Path“ bearbeiten > Neu > <PFAD ZU PHP> einfügen > OK > OK
- „Wincache Extensian for PHP“ 2.0 in 64bit herunterladen: https://www.iis.net/downloads/microsoft/wincache-extension (Aktuell: „wincache-2.0.0.8-dev-7.1-nts-vc14-x64.exe“) und in den PHP-Pfad nach \ext entpacken
- PHP im IIS konfigurieren
- „Internetinformationsdienste (IIS)-Manager“ starten > Links den Server auswählen (oberste Ebene) > „Handlerzuordnungen“ öffnen
- „Modulzuordnung hinzufügen“:
- Anforderungspfad: *.php
- Modul: FastCgiModule
- Ausführbare Datei: „C:\Program Files (x86)\<PHP-PFAD>\php-cgi.exe“
- Name: PHP
- Einschränkungen: „Handler nur bei folgender Zuordnung aufrufen“ auf „Datei oder Ordner“ stellen
- Standartdokument(e) hinzufügen
- Internetinformationsdienste (IIS)-Manager“ starten > Links den Server auswählen (oberste Ebene) >Standdartdokument
- Hinzufügen > „index.php“
- Schon fertig 🙂
Installation von Microsoft SQL Server Treibern für PHP unter Windows/IIS
- Download der „Microsoft PHP drivers Version for SQL Server“ (aktuell 7.2): https://github.com/Microsoft/msphpsql/releases
- Entpacken von x86\php_pdo*.dll nach <PHPPFAD>\ext
- Bearbeiten der PHP.ini
extension=php_sqlsrv_72_nts.dll
- Download und Installation der „Microsoft® ODBC Driver 17 for SQL Server“ in 64bit: https://www.microsoft.com/de-DE/download/details.aspx?id=56567
- Webserver neustart mit „IISRESET“
- Fertig 🙂
Ob das jeweilige Modul geladen werden konnte, lässt sich an der Kommandozeile mit „php -m“ recht gut überprüfen.
Testen der Installation von PHP auf IIS
In C:\inetpub\wwwroot eine Datei „phpinfo.php“ anlegen mit dem folgenden Inhalt:
<?php phpinfo(); ?>
Und aufrufen von http://<SERVERNAME>/phpinfo.php