PHP für IIS unter Windows 10 installieren

    PHP für WindowsDer in Windows 10 ent­hal­tene Web-Server kann nicht nur statische Seiten aus­liefern oder ASP-Code aus­führen, son­dern unter­stützt auch PHP-Anwen­dungen. Aller­dings muss man das Open-Source-Modul separat herunter­laden und instal­lieren.

    Wer dynamische Web-Seiten auf Basis der Script-Sprache PHP entwickeln möchte, benötigt dafür keinen kompletten LAMP-Stack mehr, sei es in Form einer Linux-VM oder einer Windows-Implementierung wie XAMPP. Die IIS mit installiertem PHP-Modul und SQL Server Express erfüllen diesen Zweck meistens ebenfalls.

    PHP mit Webplatform-Installer einrichten

    Die scheinbar einfachste Variante, um die WWW-Dienste der IIS um PHP zu ergänzen, ist der Einsatz von Microsofts Webplatform-Installer. Dieses grafische Installations­programm richtet nicht nur IIS-Module ein, sondern bietet einen ganzen Fundus von Tools, SDKs, Datenbanken, PowerShell-Packs für Azure oder Web-Anwendungen wie Wikis oder CMS.

    Der Webplatform-Installer fügt automatisch das Modul für SQL Server und den PHP Manager hinzu.

    Entscheidet man sich dort für die Installation von PHP, dann bietet das Tool in der Regel mehrere Versionen davon an. Wenn man eine davon auswählt, dann fügt der Installer automatisch die Treiber für SQL Server sowie den PHP Manager für IIS hinzu.

    Der anschließende Vorgang sollte die benötigten Komponenten herunterladen, instal­lieren und den IIS dafür konfigurieren. Diesen Prozess kann man als Benutzer nicht beeinflussen und wenn etwas schiefläuft, dann helfen die dürftigen Fehler­meldungen nicht weiter.

    Die mageren Fehlermeldungen lassen keine Rückschlüsse auf das Problem zu.

    Zu allem Überfluss lassen sich die installierten Module nicht mehr deinstallieren, weder über die Systemsteuerung noch über den Installer selbst. Zurück bleibt im schlimmsten Fall ein versauter Web-Server.

    PHP manuell hinzufügen

    Daher sollte man sich die Mühe machen und die relativ unkompli­zierte manuelle Installation bevorzugen. Diese erfordert im ersten Schritt, dass man in der System­steuerung unter Programme => Programme und Features => Windows-Features aktivieren oder deaktivieren prüft, ob bei der Installation des Web-Servers das CGI-Modul mit eingerichtet wurde. Ist das nicht der Fall, kann man das hier gleich nachholen.

    CGI für IIS als Windows-Feature aktivieren

    Nun besorgt man sich das passende PHP-Modul, das man von php.net herunterladen kann. Dort wählt man zum einen die gewünschte Version aus, zum anderen muss man sich zwischen der x86- und x64-Architektur entscheiden.

    Darüber hinaus liegt PHP in einer Thread-Safe- und einer Non-Thread-Safe-Ausführung vor. Die IIS benötigen die Thread-Safe-Variante nicht, weil sich das FastCGI-Modul um das Management parallel eingehender Anfragen kümmert.

    Für den IIS benötigt man die Version Non Thread Safe von PHP.

    Nach dem Download des ZIP-Archivs entpackt man dieses und kopiert den Inhalt in ein Verzeichnis, zum Beispiel unter %ProgramFiles%\PHP. Anders als in einigen Anleitungen beschrieben, muss man nun nicht die php.ini editieren. Vielmehr lässt sich PHP einfacher über den IIS Manager einbinden.

    Applet Handlerzuordnungen ausführen, um das PHP-Modul zu konfigurieren.

    Dazu klickt man im linken Abschnitt Verbindungen auf das Symbol für den Server und dann auf das Applet Handlerzuordnungen. Anschließend führt man den Befehl Modulzuordnung hinzufügen aus.

    Neue Modulzuordnung im IIS Manager hinzufügen

    Dieser öffnet einen Dialog, in den man folgende Informationen eingibt:

    • Anforderungspfad: *.php
    • Modul: FastCgiModule
    • Ausführbare Datei: <Pfad-zum-PHP-Verzeichnis>\php-cgi.exe
    • Name: Sprechende Bezeichnung wie z.B. PHPFastCGI

    Nach dem Speichern der eingegebenen Daten ist eventuell ein Neustart des Web-Servers erforderlich. Diesen kann man im IIS Manager im Abschnitt Aktionen veranlassen.

    Um zu prüfen, ob die IIS nun tatsächlich PHP-Skripte aufrufen können, erstellt man eine Datei mit dem Inhalt

    <?php phpinfo(); ?>

    und kopiert sie unter dem Namen phpinfo.php in das webroot-Verzeichnis. Ruft man sie über die entsprechende URL im Browser auf, dann sollte sie detaillierte Informationen über die installierte PHP-Version ausgeben.

    5 Kommentare

    Bild von Marc B
    Marc B sagt:
    7. Februar 2017 - 14:06

    Guten Tag und vielen Dank für die ganzen Tutorials die hier angeboten werden.
    Zu meinem Problem.
    Ich nutze Win 10 Enterprise x64 und bin Schritt für Schritt wie hier beschrieben vorgegangen.
    IIS 10 ist aufgesetzt und funktioniert
    PHP ist php-7.1.1-nts-Win32-VC14-x64

    phpinfo.php liegt im wwroot, ich bekomme jedoch unter http://localhost/phpinfo.php eine 404 Meldung.

    Ich bin jetzt alle Pfade und Ordnerstrukturen durchgegangen aber finde den Fehler einfach nicht.

    Bild von Uwe
    Uwe sagt:
    6. März 2018 - 22:26

    Am besten erst einmal in die Ereignisanzeige schauen. Anschließend "Failed Request Tracing" aktivieren.

    Bild von alphas
    alphas sagt:
    11. April 2017 - 19:51

    Man sollte vielleicht noch erwähnen, dass bei der manuellen Installation auch die passende Visual C++ Redistributable installiert werden muss, siehe PHP Download-Seite.

    Bild von Alex Haack
    Alex Haack sagt:
    21. August 2018 - 21:54

    "Zutaten" für Windows 10 / Server 2016 (x64):
    • IIS 10 mit aktiviertem CGI
    • PHP 7.x (VC15 x64 Non Thread Safe) ZIP-Datei (Pfad könnte auch D:\bin\php lauten)
    • Bei "Default Document" neuen Eintrag für das Standarddokument wie index.php hinzufügen, wenn standardmäßig index.php nicht immer mit angegeben werden soll
    • Visual C++ Redistributable for Visual Studio 2017 X64 installieren
    • IIS neu starten
    • Sonst wie es in der Anleitung steht

    Wenn alles erledigt wurde, klappt auch PHP bzw. PHP-Info :-)

    Man sollte eventuell auf die "php53.exe" von der Seite php.iis.net verzichten, da die auch veraltet ist und eventuell Probleme machen könnte.

    Ich mag persönlich eher Apache, nginx, und Debian aber wegen bestimmten Sachen geht nur Windows und da ist es schon net wenn der IIS auch PHP "spricht" :-)

    Wer mag kann auch seine eigene Dateiendung die es noch nicht gibt, hinzufügen, bei Händer Mappings (Handlerzuordnung) entweder nach *.php was hinzufügen oder *.php durch die eigene Erweiterung ersetzen, ggf. bei "Default Document" einfach einen neuen Eintrag der gewünschten Erweiterung hinzufügen.

    Bild von OeBe
    OeBe sagt:
    10. Juli 2019 - 23:23

    Danke für die Anleitung, alles hat sofort geklappt!