Web Server IIS
Zur Navigation springen
Zur Suche springen
IIS mit PHP auf Windows installieren
Einführung
- IIS (Internet Information Services) ist der Webserver von Microsoft.
- PHP wird unter IIS über FastCGI eingebunden, da dies die einzige stabile und offiziell unterstützte Methode ist.
- Diese Anleitung zeigt die Installation von IIS und PHP vollständig über die PowerShell – ohne GUI.
IIS Installation
- Zuerst die IIS-Rolle mit FastCGI installieren:
Install-WindowsFeature Web-Server, Web-CGI -IncludeManagementTools
- Kontrolle, ob IIS installiert wurde:
Get-WindowsFeature Web-Server
- IIS-Dienst starten:
Start-Service W3SVC
- Test im Browser: http://localhost (IIS-Startseite sollte erscheinen)
Visual C++ Redistributable
- PHP benötigt zwingend die Microsoft Visual C++ Runtime.
- Download und Installation (x64):
Invoke-WebRequest https://aka.ms/vs/17/release/vc_redist.x64.exe -OutFile C:\vc_redist.x64.exe Start-Process C:\vc_redist.x64.exe -ArgumentList "/install /quiet /norestart" -Wait
PHP Installation
- PHP als Non-Thread-Safe (NTS) Version für Windows herunterladen:
Invoke-WebRequest https://windows.php.net/downloads/releases/php-8.2.29-nts-Win32-vs16-x64.zip -OutFile C:\php.zip
- Entpacken nach C:\php:
Expand-Archive C:\php.zip -DestinationPath C:\php
- php.ini aktivieren:
Copy-Item C:\php\php.ini-production C:\php\php.ini
PHP in IIS einbinden
- PHP als FastCGI registrieren:
$phpPath = "C:\php\php-cgi.exe" & $env:windir\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='$phpPath']" & $env:windir\system32\inetsrv\appcmd.exe set config -section:system.webServer/handlers /+"[name='PHP-FastCGI',path='*.php',verb='*',modules='FastCgiModule',scriptProcessor='$phpPath',resourceType='Either']"
Firewall freischalten
- HTTP (Port 80) und HTTPS (Port 443) in der Windows-Firewall öffnen:
New-NetFirewallRule -DisplayName "Allow_HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow New-NetFirewallRule -DisplayName "Allow_HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
Funktionstest
- Testdatei anlegen in C:\inetpub\wwwroot\info.php
<?php phpinfo(); ?>
- IIS neu starten:
iisreset
- Aufruf im Browser oder per curl: http://localhost/info.php
Hinweise
- Immer die NTS-Version von PHP verwenden, da diese für FastCGI vorgesehen ist.
- Die Visual C++ Redistributable ist Pflicht, sonst startet PHP nicht.
- Mehrere PHP-Versionen können parallel installiert und über FastCGI-Pools getrennt genutzt werden.
- Erweiterungen werden in der php.ini aktiviert (z. B. mysqli, openssl).