Web Server IIS: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „= IIS mit PHP auf Windows installieren = == Einführung == * IIS (Internet Information Services) ist der Webserver von Microsoft. * PHP wird unter IIS über F…“) |
|||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 4: | Zeile 4: | ||
* IIS (Internet Information Services) ist der Webserver von Microsoft. | * 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. | * 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. | + | * Diese Anleitung zeigt die Installation von IIS und PHP vollständig über die PowerShell – ohne GUI. |
== IIS Installation == | == IIS Installation == | ||
| Zeile 13: | Zeile 13: | ||
Get-WindowsFeature Web-Server | Get-WindowsFeature Web-Server | ||
| − | * Test im Browser: http://localhost | + | * 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 Installation == | ||
* PHP als Non-Thread-Safe (NTS) Version für Windows herunterladen: | * PHP als Non-Thread-Safe (NTS) Version für Windows herunterladen: | ||
| − | Invoke-WebRequest https://windows.php.net/downloads/releases/php-8.2. | + | 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: | * Entpacken nach C:\php: | ||
| Zeile 30: | Zeile 39: | ||
& $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/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']" | & $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 == | == Funktionstest == | ||
| Zeile 39: | Zeile 53: | ||
</pre> | </pre> | ||
| − | * Aufruf im Browser: http://localhost/info.php | + | * IIS neu starten: |
| + | iisreset | ||
| + | |||
| + | * Aufruf im Browser oder per curl: http://localhost/info.php | ||
== Hinweise == | == Hinweise == | ||
* Immer die NTS-Version von PHP verwenden, da diese für FastCGI vorgesehen ist. | * 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. | * 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). | * Erweiterungen werden in der php.ini aktiviert (z. B. mysqli, openssl). | ||
Aktuelle Version vom 25. September 2025, 08:59 Uhr
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).