IIS für PHP unter Windows 11 einrichten: Erfahren Sie Schritt für Schritt, wie Sie Internet Information Services korrekt für PHP-Anwendungen konfigurieren.

Wer unter Windows 11 einen lokalen Webserver mit PHP betreiben möchte, kommt häufig an IIS (Internet Information Services) vorbei. IIS ist Microsofts integrierter Webserver und lässt sich direkt im Betriebssystem aktivieren – ganz ohne externe Software.
Dieser Artikel zeigt Ihnen Schritt für Schritt, wie Sie IIS installieren, PHP einrichten und die Konfiguration testen. Außerdem erhalten Sie empfohlene Vorgehensweisen für einen stabilen Betrieb.
Was ist IIS – und warum PHP darauf einrichten?
Internet Information Services, kurz IIS, ist der in Windows integrierte Webserver von Microsoft. Standardmäßig ist IIS in Windows 11 zwar vorhanden, jedoch zunächst deaktiviert. Sobald Sie ihn aktivieren, steht Ihnen eine vollwertige Serverumgebung zur Verfügung – ohne separate Installationspakete wie XAMPP oder WAMP.
PHP ist eine der weltweit meistgenutzten Skriptsprachen für die Webentwicklung. Viele bekannte Systeme wie WordPress, Joomla, TYPO3, Drupal oder Laravel basieren auf PHP. Deshalb ist es sinnvoll, PHP direkt in IIS zu integrieren, wenn Sie lokal entwickeln, eine Testumgebung betreiben oder eine eigene Webanwendung hosten möchten.
Der Vorteil gegenüber Paketlösungen wie XAMPP liegt dabei auf der Hand: IIS ist tief ins Windows-System integriert, lässt sich über Windows-Standardwerkzeuge verwalten und bietet zudem eine hohe Stabilität im produktiven Einsatz. Außerdem nutzen viele Unternehmen und Entwickler IIS bereits als Produktivserver unter Windows Server – sodass eine lokale Umgebung unter Windows 11 der Produktivumgebung sehr nahekommt.
Voraussetzungen für die IIS-PHP-Einrichtung
Bevor Sie mit der eigentlichen Konfiguration beginnen, sollten Sie einige Voraussetzungen prüfen. Dadurch vermeiden Sie spätere Fehler und sparen Zeit.
Systemvoraussetzungen:
Zunächst benötigen Sie Windows 11 in einer der Editionen Home, Pro, Education oder Enterprise. IIS ist in allen diesen Editionen verfügbar, jedoch mit unterschiedlichem Funktionsumfang. Unter Windows 11 Home fehlen einige erweiterte IIS-Module, die jedoch für PHP in der Regel nicht zwingend erforderlich sind.
Außerdem sollten Sie sicherstellen, dass Ihr System über ausreichend Arbeitsspeicher verfügt. Mindestens 4 GB RAM sind empfohlen, wobei 8 GB oder mehr für flüssiges Arbeiten sinnvoller sind. Zusätzlich benötigen Sie Administratorrechte auf dem System, da die IIS-Aktivierung entsprechende Berechtigungen erfordert.
Software-Voraussetzungen:
Für PHP unter IIS benötigen Sie die PHP-Binärdateien für Windows sowie das Visual C++ Redistributable-Paket von Microsoft. Welche Version des Redistributable-Pakets Sie benötigen, hängt von der gewählten PHP-Version ab – dazu später mehr. Zudem empfiehlt sich die Verwendung des IIS-Managers, der bereits mit IIS mitinstalliert wird.
Schritt 1: IIS unter Windows 11 aktivieren
IIS ist in Windows 11 standardmäßig deaktiviert. Deshalb müssen Sie ihn zunächst über die Windows-Funktionen einschalten. Gehen Sie dabei wie folgt vor:
Öffnen Sie die Windows-Einstellungen entweder über das Startmenü oder mit der Tastenkombination Windows + I. Navigieren Sie anschließend zu „Apps“ und wählen Sie dort „Optionale Features“. Scrollen Sie nach unten und klicken Sie auf „Weitere Windows-Features“. Alternativ können Sie direkt im Suchfeld der Taskleiste nach „Windows-Features aktivieren oder deaktivieren“ suchen.
Daraufhin öffnet sich das Fenster „Windows-Features“. Suchen Sie in der Liste nach dem Eintrag „Internetinformationsdienste“ und setzen Sie einen Haken. Erweitern Sie außerdem die Unterstruktur und stellen Sie sicher, dass folgende Komponenten aktiviert sind:
Unter Webverwaltungstools sollten Sie den IIS-Verwaltungsdienst sowie die IIS-Verwaltungskonsole aktivieren. Unter World Wide Web-Dienste → Anwendungsentwicklungsfeatures aktivieren Sie unbedingt CGI – denn dieses Feature ist zwingend notwendig, um PHP über FastCGI in IIS zu betreiben. Zusätzlich empfiehlt sich die Aktivierung von ISAPI-Erweiterungen und ISAPI-Filter.
Bestätigen Sie Ihre Auswahl mit „OK“. Windows installiert nun die ausgewählten Komponenten automatisch. Dieser Vorgang dauert in der Regel einige Minuten. Anschließend werden Sie möglicherweise aufgefordert, den Computer neu zu starten.
Tipp: Nach dem Neustart können Sie überprüfen, ob IIS läuft, indem Sie im Browser http://localhost aufrufen. Erscheint die Standard-IIS-Begrüßungsseite, läuft der Server korrekt.
Schritt 2: PHP für Windows herunterladen
Nachdem IIS läuft, benötigen Sie die PHP-Binärdateien für Windows. Diese erhalten Sie ausschließlich von der offiziellen PHP-Website unter windows.php.net/download.
Wählen Sie die richtige PHP-Version:
Aktuell (Stand 2026) ist PHP 8.3 die empfohlene stabile Version. PHP 8.2 wird ebenfalls noch unterstützt, während ältere Versionen wie PHP 7.4 keinen offiziellen Support mehr erhalten. Deshalb empfiehlt sich generell die Nutzung von PHP 8.3, um von den neuesten Sicherheitsupdates und Leistungsverbesserungen zu profitieren.
Wichtig bei der Auswahl: Laden Sie unbedingt die Non-Thread-Safe (NTS)-Variante herunter. Diese ist für den Einsatz mit FastCGI unter IIS optimiert und stabiler als die Thread-Safe-Version. Wählen Sie zudem die x64-Version, sofern Sie ein 64-Bit-System betreiben – was bei Windows 11 in der Regel der Fall ist.
Das richtige Visual C++ Redistributable:
PHP für Windows benötigt außerdem das passende Microsoft Visual C++ Redistributable-Paket. Für PHP 8.x benötigen Sie das Visual C++ 2019 Redistributable (auch bekannt als VC16). Dieses erhalten Sie direkt von der Microsoft-Website unter aka.ms/vs/17/release/vc_redist.x64.exe. Installieren Sie dieses Paket, bevor Sie mit der PHP-Konfiguration fortfahren.
PHP entpacken:
Laden Sie das PHP-ZIP-Archiv herunter und entpacken Sie es in ein geeignetes Verzeichnis. Empfohlen wird der Pfad C:\PHP oder C:\php83 für PHP 8.3. Verwenden Sie dabei keine Leerzeichen im Pfadnamen, da dies später zu Konfigurationsproblemen führen kann. Das Verzeichnis enthält nach dem Entpacken unter anderem die Dateien php.exe, php-cgi.exe sowie den Ordner ext mit den PHP-Erweiterungen.
Schritt 3: PHP in IIS über FastCGI einrichten
Der entscheidende Schritt ist nun die Integration von PHP in IIS über das FastCGI-Protokoll. FastCGI ist dabei die empfohlene Methode, da sie deutlich performanter und stabiler als klassisches CGI ist. Außerdem ermöglicht FastCGI das Recycling von PHP-Prozessen, was die Effizienz erhöht.
FastCGI-Anwendung in IIS hinzufügen
Öffnen Sie den IIS-Manager (zu finden im Startmenü unter „Internetinformationsdienste-Manager“ oder über inetmgr im Ausführen-Dialog). Klicken Sie im linken Bereich auf den Servernamen und öffnen Sie dann im mittleren Bereich das Symbol „Handler-Zuordnungen“.
Klicken Sie rechts auf „Modulzuordnung hinzufügen“ und tragen Sie folgende Werte ein:
Anforderungspfad: *.php
Modul: FastCgiModule
Ausführbare Datei: C:\PHP\php-cgi.exe (passen Sie den Pfad an Ihren Installationsordner an)
Name: PHP_via_FastCGI
Bestätigen Sie mit „OK“. IIS fragt Sie anschließend, ob eine FastCGI-Anwendung für diese ausführbare Datei erstellt werden soll – bestätigen Sie auch dies mit „Ja“.
Standarddokumente anpassen
Damit IIS index.php als Standarddatei erkennt, müssen Sie außerdem die Standarddokumente anpassen. Klicken Sie dazu im IIS-Manager auf den Servernamen oder die gewünschte Website, öffnen Sie „Standarddokument“ und fügen Sie index.php hinzu. Platzieren Sie diesen Eintrag idealerweise ganz oben in der Liste, damit er mit höchster Priorität behandelt wird.
FastCGI-Einstellungen optimieren
Zusätzlich können Sie die FastCGI-Einstellungen im IIS-Manager unter „FastCGI-Einstellungen“ anpassen. Dort finden Sie die erstellte Anwendung für php-cgi.exe. Empfehlenswert sind folgende Einstellungen:
instanceMaxRequests auf 10000 setzen – dieser Wert definiert, wie viele Anfragen ein FastCGI-Prozess bearbeitet, bevor er neu gestartet wird. Außerdem sollten Sie unter „Umgebungsvariablen“ die Variable PHP_FCGI_MAX_REQUESTS ebenfalls auf 10000 setzen, damit PHP und IIS den gleichen Wert verwenden.
Schritt 4: PHP.ini konfigurieren
PHP wird über die Konfigurationsdatei php.ini gesteuert. Standardmäßig liegt im PHP-Verzeichnis keine aktive php.ini vor, sondern zwei Vorlagen: php.ini-development und php.ini-production.
Für eine Entwicklungsumgebung kopieren Sie php.ini-development und benennen die Kopie in php.ini um. Für eine Produktivumgebung nutzen Sie entsprechend php.ini-production.
Wichtige php.ini-Einstellungen:
Öffnen Sie php.ini in einem Texteditor (z. B. Notepad++ oder Visual Studio Code) und passen Sie folgende Werte an:
extension_dir muss auf den ext-Ordner zeigen. Setzen Sie den Wert auf extension_dir = "C:\PHP\ext" (passen Sie den Pfad entsprechend an). Ohne diese Einstellung können PHP-Erweiterungen nicht geladen werden.
error_log definiert, wohin PHP Fehler protokolliert. Empfehlenswert ist ein Pfad wie error_log = "C:\inetpub\logs\php_errors.log". Stellen Sie außerdem sicher, dass IIS auf dieses Verzeichnis Schreibrechte besitzt.
date.timezone sollte ebenfalls gesetzt werden, um Warnungen zu vermeiden. Für Deutschland lautet der korrekte Wert: date.timezone = "Europe/Berlin".
Erweiterungen aktivieren:
PHP-Erweiterungen werden in der php.ini durch Entfernen des Semikolons vor dem jeweiligen Eintrag aktiviert. Für typische Webentwicklungsprojekte empfiehlt sich die Aktivierung folgender Extensions:
extension=curl, extension=gd, extension=mbstring, extension=mysqli, extension=openssl, extension=pdo_mysql sowie extension=zip. Suchen Sie dazu nach diesen Einträgen und entfernen Sie das vorangestellte Semikolon (;), sofern vorhanden.
PHP zum Systempfad hinzufügen (optional, aber empfohlen):
Damit Sie PHP auch über die Eingabeaufforderung oder PowerShell nutzen können, sollten Sie das PHP-Verzeichnis zur PATH-Umgebungsvariablen hinzufügen. Öffnen Sie dazu die Systemeigenschaften (Windows + Pause), klicken Sie auf „Erweiterte Systemeinstellungen“ → „Umgebungsvariablen“ und fügen Sie C:\PHP zur Variable Path unter „Systemvariablen“ hinzu. Starten Sie anschließend IIS neu, damit die Änderungen wirksam werden.
Schritt 5: IIS neu starten und PHP-Installation testen
Nachdem Sie alle Konfigurationsschritte durchgeführt haben, starten Sie IIS neu. Öffnen Sie dazu den IIS-Manager, klicken Sie im linken Bereich auf den Servernamen und wählen Sie rechts unter „Website verwalten“ → „Neu starten“. Alternativ können Sie IIS auch über die Eingabeaufforderung (als Administrator) mit folgendem Befehl neu starten:
iisreset /restart
PHP-Testdatei erstellen:
Erstellen Sie nun eine Testdatei, um zu prüfen, ob PHP korrekt ausgeführt wird. Navigieren Sie dazu in das Stammverzeichnis Ihrer IIS-Website, das standardmäßig unter C:\inetpub\wwwroot liegt. Erstellen Sie dort eine neue Datei mit dem Namen phpinfo.php und dem folgenden Inhalt:
<?php
phpinfo;
?>
Öffnen Sie anschließend im Browser die URL http://localhost/phpinfo.php. Erscheint eine farbige Seite mit detaillierten Informationen zu Ihrer PHP-Konfiguration, ist die Installation erfolgreich abgeschlossen. Außerdem sehen Sie dort, welche Erweiterungen aktiv sind und welche php.ini geladen wird.
Sicherheitshinweis: Löschen Sie die phpinfo.php-Datei nach dem Test unbedingt wieder. Diese Datei enthält sensible Konfigurationsinformationen und sollte deshalb niemals auf einem öffentlich erreichbaren Server verbleiben.
Schritt 6: Berechtigungen korrekt setzen
Ein häufiger Fallstrick bei der IIS-PHP-Konfiguration sind Dateisystemberechtigungen. IIS führt PHP-Prozesse unter einem bestimmten Dienstkonto aus – standardmäßig unter IIS_IUSRS oder dem Anwendungspoolkonto.
Stellen Sie sicher, dass der Anwendungspool-Benutzer Leserechte auf das PHP-Verzeichnis (C:\PHP) besitzt. Klicken Sie dazu mit der rechten Maustaste auf den Ordner, wählen Sie „Eigenschaften“ → „Sicherheit“ → „Bearbeiten“ und fügen Sie IIS_IUSRS mit Leseberechtigung hinzu.
Außerdem benötigt das Dienstkonto Schreibrechte auf das Verzeichnis für PHP-Fehlerprotokolle, sofern Sie die error_log-Direktive gesetzt haben. Ohne diese Rechte werden Fehler möglicherweise nicht protokolliert, was die Fehlersuche erheblich erschwert.
Für das Webroot-Verzeichnis (C:\inetpub\wwwroot oder Ihr eigenes Verzeichnis) benötigt IIS_IUSRS Leserechte. Schreibrechte sollten Sie dort nur vergeben, wenn die Anwendung diese zwingend benötigt – etwa für Datei-Uploads. Deshalb empfiehlt sich eine Trennung von öffentlichem Webroot und schreibbarem Upload-Verzeichnis.
Schritt 7: Virtuelle Verzeichnisse und mehrere Websites einrichten
IIS ermöglicht es, mehrere Websites auf einem System zu betreiben. Deshalb ist es sinnvoll, zu wissen, wie Sie für jede Ihrer PHP-Anwendungen eine eigene Website oder ein virtuelles Verzeichnis einrichten.
Neue Website hinzufügen:
Klicken Sie im IIS-Manager unter „Sites“ mit der rechten Maustaste und wählen Sie „Website hinzufügen“. Geben Sie einen Sitenamen, den physischen Pfad Ihrer Anwendung sowie den gewünschten Port an. Für lokale Entwicklungsumgebungen sind beispielsweise die Ports 8080, 8081 oder individuelle Hostnamen über die Hosts-Datei (C:\Windows\System32\drivers\etc\hosts) geeignet.
Anwendungspools verwalten:
Jede Website in IIS läuft in einem eigenen Anwendungspool, der PHP-Prozesse isoliert. Stellen Sie sicher, dass für PHP-Websites der Anwendungspool auf „Kein verwalteter Code“ eingestellt ist. Diese Einstellung vermeidet Konflikte zwischen dem .NET-Framework und PHP-Prozessen, da PHP kein .NET-Framework benötigt.
Häufige Fehler und deren Behebung
Trotz sorgfältiger Konfiguration können Probleme auftreten. Deshalb finden Sie hier die häufigsten Fehler und deren Lösungen:
HTTP-Fehler 500.19 – Interner Serverfehler:
Dieser Fehler tritt häufig auf, wenn die web.config-Datei fehlerhaft ist oder der Anwendungspool-Benutzer keine Leserechte auf das Verzeichnis hat. Prüfen Sie außerdem, ob das CGI-Feature korrekt in IIS aktiviert wurde.
HTTP-Fehler 500.21 – Handler-Fehler:
Dieser Fehler deutet darauf hin, dass der FastCGI-Handler nicht korrekt eingerichtet wurde. Überprüfen Sie, ob der Pfad zur php-cgi.exe in der Handler-Zuordnung korrekt ist und die Datei tatsächlich vorhanden ist.
Leere Seite statt PHP-Ausgabe:
Wenn der Browser eine leere Seite anzeigt, ist PHP möglicherweise nicht korrekt registriert. Prüfen Sie zusätzlich, ob die php.ini geladen wird (sichtbar in der phpinfo-Ausgabe unter „Loaded Configuration File“).
PHP-Erweiterungen werden nicht geladen:
Prüfen Sie in der phpinfo-Ausgabe, welche Erweiterungen aktiv sind. Wenn eine gewünschte Extension fehlt, überprüfen Sie den extension_dir-Pfad in der php.ini und stellen Sie sicher, dass die entsprechende .dll-Datei im ext-Verzeichnis vorhanden ist.
Fehlermeldung „FastCGI process exited unexpectedly“:
Dieser Fehler tritt auf, wenn PHP abstürzt. Prüfen Sie deshalb das Windows-Ereignisprotokoll sowie das PHP-Fehlerlog. Häufige Ursachen sind fehlende DLL-Dateien, ein fehlendes Visual C++ Redistributable oder eine fehlerhafte php.ini.
Empfohlene Vorgehensweisen für IIS mit PHP
Um einen stabilen und sicheren Betrieb zu gewährleisten, sollten Sie folgende empfohlene Vorgehensweisen berücksichtigen:
PHP regelmäßig aktualisieren: PHP-Updates beheben regelmäßig Sicherheitslücken. Deshalb sollten Sie PHP mindestens alle drei Monate auf die neueste Patch-Version aktualisieren. Prüfen Sie dazu regelmäßig die PHP-Website und laden Sie neue Versionen rechtzeitig herunter.
Fehleranzeige in der Produktion deaktivieren: In der php.ini sollten Sie display_errors = Off setzen, sobald die Anwendung in den Produktivbetrieb geht. Fehler sollten ausschließlich ins Fehlerlog geschrieben, jedoch nicht im Browser angezeigt werden, da sonst sensible Informationen nach außen gelangen können.
URL-Rewriting mit dem IIS URL Rewrite Modul: Viele PHP-Frameworks wie Laravel, Symfony oder CodeIgniter benötigen URL-Rewriting. Installieren Sie dazu das kostenlose IIS URL Rewrite Module, das Sie direkt vom Microsoft Web Platform Installer herunterladen können. Dieses Modul ermöglicht saubere URLs und ist deshalb für nahezu alle modernen PHP-Anwendungen erforderlich.
Separater Anwendungspool pro Website: Für mehr Stabilität und Sicherheit sollten Sie jede PHP-Anwendung in einem eigenen Anwendungspool betreiben. Dadurch ist ein Absturz einer Anwendung auf andere Sites isoliert.
Regelmäßige Sicherheitsüberprüfungen: Prüfen Sie regelmäßig die IIS-Protokolle unter C:\inetpub\logs\LogFiles auf ungewöhnliche Zugriffsmuster. Außerdem sollten Sie Verzeichnisauflistung in IIS deaktivieren, sodass keine Dateilisten für Besucher sichtbar sind.
IIS PHP-Konfiguration unter verschiedenen Windows-Versionen
Obwohl sich dieser Artikel hauptsächlich auf Windows 11 konzentriert, ist die beschriebene Vorgehensweise auch auf anderen Windows-Versionen anwendbar:
Windows 10: Die Schritte sind nahezu identisch zu Windows 11. Lediglich die Position einiger Einstellungsoptionen unterscheidet sich geringfügig, da Windows 10 eine leicht abweichende Benutzeroberfläche besitzt. Die IIS-Versionen sind jedoch vergleichbar.
Windows Server 2019/2022: Auf Windows Server wird IIS über den Server-Manager installiert. Öffnen Sie dazu „Rollen und Features hinzufügen“ und wählen Sie die Rolle „Webserver (IIS)“. Ansonsten ist die PHP-Konfiguration identisch zu Windows 11. Zudem bietet Windows Server 2022 mit IIS 10.0 eine verbesserte HTTP/2-Unterstützung.
Windows Server 2016: Auch hier ist IIS über den Server-Manager verfügbar. Beachten Sie jedoch, dass Windows Server 2016 mittlerweile nur noch begrenzten Support erhält. Deshalb empfiehlt sich ein Upgrade auf Windows Server 2022 für neue Deployments.
PHP-Frameworks und CMS unter IIS betreiben
Mit der korrekten IIS-PHP-Konfiguration können Sie zahlreiche populäre PHP-Anwendungen betreiben:
WordPress unter IIS: WordPress läuft grundsätzlich auch unter IIS. Jedoch benötigen Sie dazu außerdem eine MySQL- oder MariaDB-Datenbank sowie das IIS URL Rewrite Module für Permalinks. Empfohlen wird MySQL 8.0, das Sie separat installieren und konfigurieren müssen. Zudem ist die PHP-Erweiterung php_mysql.dll bzw. mysqli in der php.ini zu aktivieren.
Laravel unter IIS: Laravel erfordert ebenfalls URL-Rewriting. Zusätzlich benötigen Sie die Erweiterungen mbstring, openssl, pdo, tokenizer und xml. Erstellen Sie außerdem eine web.config-Datei im public-Verzeichnis von Laravel, die eingehende Anfragen korrekt an die index.php weiterleitet.
TYPO3 unter IIS: TYPO3 ist ein leistungsfähiges Enterprise-CMS, das ebenfalls unter IIS lauffähig ist. Deshalb ist es besonders in Unternehmensumgebungen eine attraktive Kombination. Stellen Sie sicher, dass alle erforderlichen PHP-Erweiterungen aktiviert sind und der Anwendungspool ausreichend Arbeitsspeicher erhält.
PHP-Version wechseln unter IIS
Es ist möglich, mehrere PHP-Versionen parallel zu installieren und je nach Website eine andere Version zu nutzen. Entpacken Sie dazu jede PHP-Version in einen eigenen Ordner (z. B. C:\PHP8.2 und C:\PHP8.3). Erstellen Sie anschließend für jede Version eine separate FastCGI-Anwendung im IIS-Manager und weisen Sie diese über Handler-Zuordnungen den jeweiligen Websites zu.
Außerdem können Sie über die FastCGI-Einstellungen auf Websiteebene gezielt eine bestimmte PHP-Version aktivieren. Diese Flexibilität ist besonders in Entwicklungsumgebungen nützlich, in denen verschiedene Projekte unterschiedliche PHP-Versionen benötigen.
PHP mit HTTPS unter IIS konfigurieren
Für eine sichere Kommunikation sollten Sie außerdem HTTPS für Ihre IIS-Website aktivieren. Dazu benötigen Sie ein SSL-Zertifikat. Für lokale Entwicklungsumgebungen empfiehlt sich die Verwendung von mkcert, einem kostenlosen Tool, das lokal vertrauenswürdige SSL-Zertifikate generiert.
Laden Sie mkcert von github.com/FiloSottile/mkcert herunter und führen Sie es aus. Installieren Sie anschließend das Zertifikat im IIS-Manager unter der Bindungskonfiguration der Website. Wählen Sie dort HTTPS, Port 443 und das erstellte Zertifikat. Deshalb ist HTTPS auch lokal für die Entwicklung moderner Webanwendungen, die Cookies mit Secure-Flag oder Service Worker nutzen, unerlässlich.
Datenbankverbindung: MySQL/MariaDB unter IIS mit PHP
PHP allein reicht für die meisten Webanwendungen nicht aus. Zusätzlich benötigen Sie in der Regel eine Datenbank. Empfohlen werden MySQL 8.0 oder MariaDB 11.x (Stand 2026), die beide kostenlos verfügbar sind.
Installieren Sie MySQL über den MySQL Installer for Windows, den Sie unter dev.mysql.com/downloads herunterladen. Wählen Sie bei der Installation „Server only“ oder „Developer Default“, je nach Bedarf. Nach der Installation stellen Sie sicher, dass in der php.ini die Erweiterungen extension=mysqli und extension=pdo_mysql aktiviert sind.
Testen Sie die Datenbankverbindung anschließend mit einem einfachen PHP-Skript:
<?php
$conn = new mysqli("localhost", "root", "IhrPasswort", "testdb");
if ($conn->connect_error) {
die("Verbindung fehlgeschlagen: " . $conn->connect_error);
}
echo "Verbindung erfolgreich!";
?>
Ersetzen Sie dabei IhrPasswort durch Ihr tatsächliches MySQL-Passwort. Außerdem sollten Sie für Produktivanwendungen niemals den root-Benutzer verwenden, sondern stets einen dedizierten Datenbankbenutzer mit eingeschränkten Rechten anlegen.
Composer und CLI-Tools unter IIS/Windows 11
Für moderne PHP-Entwicklung ist Composer – der PHP-Paketmanager – unverzichtbar. Deshalb empfiehlt sich die Installation auch bei einer IIS-basierten Entwicklungsumgebung.
Laden Sie den Composer-Windows-Installer von getcomposer.org/download herunter und führen Sie ihn aus. Der Installer erkennt automatisch die PHP-Installation, sofern PHP im Systempfad eingetragen ist. Nach der Installation steht Ihnen Composer über die Eingabeaufforderung oder PowerShell zur Verfügung.
Mit Composer können Sie anschließend PHP-Frameworks und Bibliotheken einfach installieren. Zum Beispiel erstellen Sie ein neues Laravel-Projekt mit:
composer create-project laravel/laravel meinProjekt
Führen Sie diesen Befehl in dem Verzeichnis aus, in dem das Projekt angelegt werden soll. Anschließend konfigurieren Sie die neue Anwendung wie oben beschrieben in IIS.
Logging und Debugging unter IIS mit PHP
Ein effektives Logging ist essenziell für die Fehlersuche. Deshalb sollten Sie sowohl IIS-Logs als auch PHP-Fehlerprotokolle im Blick behalten.
IIS-Logs befinden sich standardmäßig unter C:\inetpub\logs\LogFiles. Dort finden Sie tagesweise Protokolldateien mit allen HTTP-Anfragen. Diese helfen, 404-Fehler, 500-Fehler und andere HTTP-Probleme zu identifizieren.
PHP-Fehlerprotokolle werden – sofern in der php.ini konfiguriert – am definierten Speicherort geschrieben. Aktivieren Sie dazu in der php.ini die Einstellungen log_errors = On und error_log = "C:\inetpub\logs\php_errors.log". Dadurch werden PHP-Fehler automatisch protokolliert.
Für erweiterte Debuggingfähigkeiten empfiehlt sich außerdem die Installation von Xdebug. Xdebug ist eine PHP-Erweiterung, die unter anderem Stack Traces, Profiling und die Integration mit Entwicklungsumgebungen wie Visual Studio Code oder PhpStorm ermöglicht. Laden Sie die passende Xdebug-Version von xdebug.org/wizard herunter, kopieren Sie die DLL-Datei in den ext-Ordner von PHP und ergänzen Sie die php.ini entsprechend.
Häufige Fragen zu IIS und PHP unter Windows
Was ist FastCGI und warum ist es für PHP unter IIS notwendig?
FastCGI ist ein Protokoll, das die Kommunikation zwischen einem Webserver und externen Programmen wie PHP ermöglicht. Im Gegensatz zu klassischem CGI startet FastCGI PHP-Prozesse nicht bei jeder Anfrage neu, sondern hält sie aufrecht und wiederverwendet sie. Deshalb ist FastCGI deutlich performanter und ressourcenschonender. Unter IIS ist FastCGI außerdem stabiler als die ISAPI-Methode und deshalb die empfohlene Integrationsmethode für PHP.
Kann ich PHP unter IIS auf Windows 11 Home einrichten?
Ja, auch unter Windows 11 Home ist IIS verfügbar und PHP lässt sich einrichten. Allerdings fehlen unter Home einige erweiterte IIS-Funktionen, wie z. B. der Fernverwaltungsdienst oder bestimmte Authentifizierungsmodule. Für lokale Entwicklungsumgebungen ist Windows 11 Home jedoch in der Regel ausreichend. Deshalb können Sie die in diesem Artikel beschriebenen Schritte auch unter der Home-Edition vollständig ausführen.
Welche PHP-Version sollte ich 2026 unter IIS verwenden?
Aktuell (2026) empfiehlt sich PHP 8.3 als stabile und aktiv gewartete Version. PHP 8.2 erhält ebenfalls noch Sicherheitsupdates. Ältere Versionen wie PHP 7.4 oder PHP 8.0 sind hingegen nicht mehr offiziell supportet und sollten deshalb nicht mehr eingesetzt werden, insbesondere auf öffentlich erreichbaren Servern.
Wie überprüfe ich, ob PHP korrekt in IIS installiert ist?
Erstellen Sie eine Datei phpinfo.php im Webroot-Verzeichnis mit dem Inhalt <?php phpinfo; ?> und rufen Sie diese im Browser über http://localhost/phpinfo.php auf. Erscheint eine detaillierte Konfigurationsseite, ist PHP korrekt installiert und in IIS integriert. Außerdem sehen Sie dort, welche Erweiterungen aktiv sind und welche php.ini-Datei geladen wird. Löschen Sie die Datei nach dem Test unbedingt.
Wie richte ich mehrere PHP-Versionen gleichzeitig unter IIS ein?
Installieren Sie jede PHP-Version in einen separaten Ordner (z. B. C:\PHP82 und C:\PHP83). Registrieren Sie anschließend für jede Version eine separate FastCGI-Anwendung im IIS-Manager. Weisen Sie dann über die Handler-Zuordnungen auf Website-Ebene die gewünschte PHP-Version zu. Deshalb ist es möglich, verschiedene Projekte mit unterschiedlichen PHP-Versionen parallel zu betreiben.
Warum zeigt IIS eine leere Seite an, statt PHP auszuführen?
Eine leere Seite deutet häufig darauf hin, dass die Handler-Zuordnung für .php-Dateien fehlt oder fehlerhaft ist. Prüfen Sie außerdem, ob das FastCGI-Modul in IIS korrekt aktiviert wurde und ob der Pfad zur php-cgi.exe korrekt eingetragen ist. Zusätzlich können fehlerhafte php.ini-Einstellungen dazu führen, dass PHP keine Ausgabe erzeugt. Aktivieren Sie deshalb vorübergehend display_errors = On in der php.ini, um Fehler sichtbar zu machen.
Wie aktiviere ich PHP-Erweiterungen unter IIS?
PHP-Erweiterungen werden in der php.ini aktiviert, indem Sie das Semikolon (;) vor dem jeweiligen extension=-Eintrag entfernen. Stellen Sie dabei sicher, dass die entsprechende .dll-Datei im ext-Verzeichnis Ihrer PHP-Installation vorhanden ist und dass extension_dir in der php.ini auf dieses Verzeichnis zeigt. Starten Sie IIS nach Änderungen an der php.ini neu, damit die Änderungen wirksam werden.
Wie installiere ich WordPress unter IIS mit PHP?
Für WordPress unter IIS benötigen Sie neben PHP auch eine MySQL/MariaDB-Datenbank sowie das IIS URL Rewrite Module. Entpacken Sie WordPress in das Webroot-Verzeichnis, erstellen Sie eine MySQL-Datenbank und führen Sie die WordPress-Installation im Browser durch. Außerdem benötigen Sie eine web.config-Datei für das URL-Rewriting, die entweder automatisch von WordPress erstellt wird oder manuell angelegt werden kann.
Was bedeutet der IIS-Fehler 500.21 bei PHP?
Der Fehler 500.21 bedeutet, dass der FastCGI-Handler nicht gefunden oder nicht korrekt registriert wurde. Überprüfen Sie deshalb, ob das CGI-Feature in Windows-Funktionen aktiviert ist. Außerdem sollten Sie prüfen, ob die Handler-Zuordnung für .php im IIS-Manager korrekt auf die php-cgi.exe verweist. Gelegentlich hilft es auch, IIS vollständig zu deaktivieren und neu zu aktivieren, um die Handlerregistrierung zurückzusetzen.
Wie sichere ich PHP unter IIS ab?
Deaktivieren Sie in der php.ini zunächst display_errors = Off für die Produktion und aktivieren Sie stattdessen log_errors = On. Außerdem sollten Sie expose_php = Off setzen, damit PHP-Versionsinformationen nicht in HTTP-Headern erscheinen. Deaktivieren Sie zudem nicht benötigte PHP-Erweiterungen und beschränken Sie die Datei-Uploads auf erlaubte Typen und Größen. Deshalb empfiehlt sich zusätzlich die Nutzung einer Web Application Firewall (WAF) wie dem kostenlosen IIS-Modul ModSecurity.
Fazit
IIS und PHP unter Windows 11 einzurichten ist mit den richtigen Schritten gut machbar. Aktivieren Sie IIS über die Windows-Features, laden Sie die passende PHP-NTS-Version herunter, konfigurieren Sie FastCGI und passen Sie die php.ini sorgfältig an.
Außerdem sorgen regelmäßige Updates, korrekte Berechtigungen und ein durchdachtes Logging dafür, dass Ihre PHP-Anwendungen stabil und sicher laufen – egal ob lokal oder in der Produktion.
