Web Server IIS

Aus Xinux Wiki
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

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

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).