IIS: PHP Installieren

Für den IIS 7.5 und älter gab es den PHP-Manager, der die PHP-Installation bequem über die Konfigurationsoberfläche des IIS ermöglichte. Leider gibt es noch keine Version für den aktuellen IIS (Stand 30.07.2019).

PHP manuell beim IIS einzurichten ist aber nicht sonderlich kompliziert. Das folgende ist ein kleiner Leitfaden zur Installation. Dieser bezieht sich auf die Softwareversionen:

  • Windows Server 2016 (64bit)
  • IIS 10 (64bit)
  • PHP 7.3 (64bit, NTS)

Das IIS CGI-Modul und IIS FastCGI-Modul installieren

Falls der IIS noch keine Unterstützung für CGI bzw. FastCGI bietet, müssen diese noch installiert werden. Falls diese bereits installiert sind, kann der Punkt komplett übersprungen werden.

  1. Den Server-Manager starten
  2. Verwalten > Rollen und Features hinzufügen auswählen
    Servermanagerfenster mit dem Menü Rollen und Features hinzufügen
  3. Seite Vorbereitung: mit Weiter > überspringen
  4. Seite Installationstyp: Rollenbasierte oder featurebasierte Installation auswählen und mit Weiter > zur nächsten Seite
  5. Seite Serverauswahl: den IIS auswählen (wahrscheinlich ist nur einer in der Liste) und mit Weiter > zur nächsten Seite
  6. Seite Serverrollen: unter Webserver (IIS) > Webserver > Anwendungsentwicklung den Punkt CGI auswählen
    Assistent zum Hinzufügen von Rollen und Features
  7. Alle folgenden Seiten mit Weiter > durchlaufen und die Installation abschließen
  8. Im IIS-Manager stehen jetzt die Elemente CGI und FastCGI-Einstellungen zur Verfügung
    Servermanager CGI

PHP herunterladen

Als nächstes muss das PHP Paket ausgewählt werden. Dabei stehen je verschiedene Pakete (32bit / 64bit, Thread Safe / Non Thread Safe, VC14, VC15, VC16) und Versionen zur Auswahl. Des Weiteren muss ein zur PHP-Version passendes Microsoft Visual C++ Redistribtable Package auf dem Server installiert werden.

  1. Unter http://windows.php.net/download/ gibt es die Windows-Binaries von PHP zum download
  2. Das entsprechende PHP-Paket auswählen
    • 32bit (x86) oder 64bit (x64)
    • Non Thread Safe (NTS)
    • VC15
  3. ZIP-Datei herunterladen
  4. Das entsprechende Microsoft Visual C++ Redistribtable Package herunterladen
    • VC15 (Visual Studio 2017, 64bit)
      Weitere Packageversionen siehe untenstehende Liste
  5. Das heruntergeladene Microsoft Visual C++ Redistributable Package installieren

C++ Redistributable Packages herunterladen

Da der Multimilliarden-Dollar-Konzern Microsoft offensichtlich nicht in der Lage ist eine einfache Downloadliste oder wenigsten eine anständige Suche auf der eigenen Homepage einzubinden, hier die Links zu den Visual Studio C++ Redistributables

PHP einrichten

Das heruntergeldene PHP-Paket muss eingerichtet werden. Im wesentlichen muss dafür die php.ini als Konfigurationsdatei angelegt werden.

  1. Ordner anlegen, in dem PHP installiert werden soll (im Folgenden [PHP-Ordner] genannt)
    Bsp: C:\PHPv73x64
  2. ZIP-Datei in diesen Ordner entpacken
  3. Die Datei [PHP-Ordner]\php.ini-production kopieren und als php.ini in den Ordner einfügen
  4. Die folgenden Schlüssel in der php.ini suchen und die entsprechenden Werte setzen
    fastcgi.impersonate = 1
    fastcgi.logging = 0
    cgi.fix_pathinfo = 1
    cgi.force_redirect = 0
    extension_dir = "./ext"
  5. Ggf. können gleich notwendige PHP-Extensions mit aktiviert werden
  6. Zum überprüfen der Einrichtung die Konsole starten, und den Befehl [PHP-Ordner]\php.exe -i aufrufen
    Es sollten die Paramter mit denen PHP läuft ausgegeben werden.

IIS und PHP verbinden

Als letzter Schritt muss dem IIS noch mitgeteilt werden, wo sich die PHP-Installation befindet und wann und wie er diese aufrufen soll.

  1. Im IIS-Manager die Handlerzuordnungen öffnen
  2. Ganz rechts unter Aktionen > Modulzuordnung hinzufügen... auswählen
  3. Die folgenden Werte eintragen:
    • Anforderungspfad: *.php
    • Modul: FastCgiModule
    • Ausführbare Datei: [PHP-Ordner]\php-cgi.exe
    • Name: PHP_via_FastCgi
      Modulzuordnung hinzufügen
    • Die Schaltfläche Einschränkungen... betätigen
    • Im Reiter Zuordnung den Haken bei Handler nur bei folgender Zuordnung aufrufen: setzen und Datei oder Ordner auswählen
    • Beide Dialoge mit OK bestätigen
    • Die Abfrage, ob gleich eine Anwendung für FastCGI angelegt werden soll mit Ja bestätigen
    • Im IIS-Manager die FastCGI-Einstellungen öffnen
    • Es sollte ein Eintrag mit dem Pfad zur php-cgi.exe vorhanden sein, der über Rechtsklick > Bearbeiten... editiert wird
      • Wenn dieser nicht vorhanden ist, dann Anwendung hinzufügen... und als Vollst. Pfad: den [PHP-Ordner]\php-cgi.exe auswählen und die Einstellungen aus den folgenden Punkten durchführen
    • Die folgenden Werte eintragen:
      • „MaxRequests“-Instanz: 10000
      • Änderungen an der Datei überwachen: [PHP-Ordner]\php.ini
      • Maximale Anzahl von Instanzen: 0
    • Unter dem Punkt Umgebungsvariablen auf die Schaltfläche ... klicken
    • Eine neue Umgebungsvariable mit Hinzufügen anlegen und als Name PHP_FCGI_MAX_REQUESTS und als Wert 10000 eintragen.
      PHP Umgebung
    • Alle Dialoge mit OK schließen
    • Im IIS-Manager das Modul Standarddokument öffnen
    • Hinzufügen... auswählen
    • Als Name den Wert index.php eintragen und den Dialog mit OK schließen

Installation testen

Um die Installation zu testen, bietet sich die Funktion phpinfo() an, welche die Parameter der PHP-Installation auf einer Webseite ausgibt.

  1. In einem Ordner, der veröffentlicht wird (z.B. C:\inetpub\wwwroot) eine Datei mit dem Namen test.php anlegen
  2. Diese Datei in einem Editor öffnen und den folgenden Quelltext eintragen:
<html>
  <body>
    <?php phpinfo()?>
  </body>
</html>
  1. Datei speichern
  2. Im Browser (vorzugsweise auf einem anderem Computer) die URL zur erstellten Datei aufrufen: http://[server-ip]/test.php
  3. Als Ausgabe erscheint eine Seite mit mehreren Tabellen zur Konfiguration von PHP