PHP in Microsoft IIS implementieren


Installieren Sie PHP 5 auf einem IIS Internet Information Service Webserver.

Eine der populärsten Entwicklzungsplatformen im Web ist PHP, mit welche viele Applikationen und Webseiten wie Facebook, Wordpress und Joomla betrieben werden. Die meisten dieser Systeme sind für den Einsatz des Apache Web Servers unter Linux designed, jedoch ist es ebenfalls möglich PHP mit dem IIS 7 unter Windows Server 2008/R2 zu betreiben

Konfigurieren von PHP

Um in Windows den PHP Code auszuführen, müssen die PHP Binary Files auf dem Webserver kopiert werden. Es ist keine dezidierte Installation notwendig, jedoch einige Schritte müssen gemacht werden, um PHP korrekt auszuführen.

 Schritt 1: Die PHP Windows Binaries herunterladen und extrahieren (z.B. C:\PHP) 

                Download Link

                Für den IIS 7 sind die non thread safe binaries notwendig.

image

Konfigurieren von IIS 7 um FastCGI auszuführen

Internet Information Services (IIS) 7  hat das FastCGI Framework inkludiert, welches als Teil des Installation Packetes enthalten ist.

Schritt 2: Um sicherzustellen, dass FastCGI aktiviert ist, überprüfen Sie das Rollen Services                       unter Server Manager > Roles > Web Server.

Schritt 3: Stellen Sie sicher, dass die "CGI" Option in der Kategorie “Application Development” installiert ist. Falls dies nicht der Fall ist, aktivieren Sie dieses und aktualisieren Sie Ihre IIS 7 Installation.

PHP Manager für IIS verwenden um PHP zu konfigurieren

Schritt 4: Von der Download Seite das passende Installations Packet für Ihren Webserver herunterladen und installieren. Der PHP Manager wird nur von der IIS Versions 7.0 and höher supported. Nach der Installation öffnet man den IIS Manager, in dem man das "PHP Manager" Feature findet.

Wenn Sie den PHP Manager öffnen, stellt dieser eine Konfigurationsübersicht der PHP Installation dar, welche in IIS registiert und gerade aktiv ist. Wenn kein PHP mit IIS registriert ist, kann nur die Aktion zum Registrieren einer neuen PHP Version ausgeführt werden.

PHP in IIS registrieren

Schritt 5: Um eine neue PHP Version zu registrieren klicken Sie auf "Register new PHP version"  und geben Sie den vollen Pfad zum Speicherort der PHP Anwendungsdatei an: php-cgi.exe

Nach dem Bestätigen mit "OK" wird die neue PHP Version mit IIS registriert und aktiv. Ab nun verwenden alle Seiten des IIS per default diese PHP Version

Überprüfen der existierenden PHP Installation und korrigieren der Konfigurationsfehler

Um PHP auf dem IIS ordnungsgemäß ausführen zu können, sind einige Einstellungen im IIS und PHP nötig. PHP Manager überprüft, ob alle Einstellungen korrekt sind. Wenn Einstellungen nicht richtig konfiguriert sind, kann PHP Manager diese richtigstellen.

Falls dieses der Fall ist, wird beim öffnen des PHP Managers eine Warnung angezeigt.

Wenn Sie auf den "View Recommendations" Link klicken, werden alle bestehenden Konfigurationsfehler angezeigt. Sie können sich alle Fehlerbeschreibungen und Lösungen anzeigen lassen.

Ebenfalls kann ausgewählt werden, welcher Fehler behoben werden soll.

Wechsel zwischen unterschiedlichen PHP Versionen

Nachem multiple PHP Versions im IIS registriert worden sind, kann im PHP Manager leicht zwischen den Versionen auf Server und Site Level gewechselt werden. Das soll heißen, dass IIS so konfiguriert werden kann, dass einige Seiten die ein Version und andere Seiten die Andere verwenden können.

Error Reporting konfigurieren

PHP Manager kann verwendet werden, um das Error Reporting Level in PHP zu konfigurieren. Wenn IIS in einer Entwicklungsumgebung verwendet wird, dann wird das ausführliche Error Reporting nützlich sein, indem alle Errors, Warnings und Infos der PHP Applikation angezeigt werden. Wenn ISS allerdings in einer Produktivumgebung verwendet wird, werden Errors in einem Log File und nicht direkt am HTTP Client wiedergegeben.

Runtime Limits konfigurieren

Unterschiedliche timeouts und Limits können auf der "PHP Runtime Limits" Seite editiert werden.

Konfigurieren aller PHP Settings

Alle verfügbaren PHP Einstellungen können auf der  "PHP Settings" Seite hinzugefügt, gelöscht und bearbeitet werden.

Dabei sollten Sie die Werte wie folgt verändern:

cgi.force_redirect = 0

fastcgi.impersonate = 1

PHP Extensions aktivieren oder deaktivieren

PHP extensions können auf der "PHP Extensions" Seite aktiviert oder deaktiviert werden.

Ausführen von FastCGI via PHP in IIS konfigurieren

Sobald PHP mit dem PHP Manager installiert und konfiguriert wurde, ist dieser Schritt nicht notwenig, da PHP Manager alle relevanten Schritte durchführt.

Trotzdem möchte ich diese Einstellungen kurz überfliegen

Als nächstes müssen im ISS "Handler Mapping" die PHP Scrips mit der richtigen Anwendung verknüpft werden.

Im Handler Mappings, hinzufügen eines neuen Module mappings.

Mit dem "Add Module Mapping" den "Request path" der PHP Datein (*.php) setzen. Das Mudul "FastCgiModule" auswählen. Die "Executable" auf den Speicherort der installierten PHP Instanz setzen:  php-cgi.exe

Wählen Sie einen aussagekräftigen Namen für das mapping aus, wie z.B. PHP v5.3.3

Im Bestätigungsfenster die Frage mit "Yes" beantworten um PHP als FastCGI Applikation auszuführen.

Alle Änderungen müssen übernommen und via Eingabeaufforderung der IIS restartet werden um sicherzustellen, dass alle neuen Einstellungen greifen

Überprüfen der phpinfo() output

Ab diesem Zeitpunkt ist der Server "ready to go", aber nur um sicher zu gehen sollten wir unser Setup auf die korrekte Funktion überprüfen.

Die phpinfo() Funktion in PHP stellt detailierte Informationen über alle Parameter von PHP dar. Um die phppinfo() output über den PHP Manager anzuzeigen, verwenden Sie "Check phpinfo()".

Fazit

Sobald PHP auf Ihrem Windows System läuft, können Sie sich einen Überblick über die Vorteile von PHP basierenden Applikationen in Entwicklung- sowie Produktivumgebungen schaffen.

Letzte Änderung:
2013-03-08 21:13
Verfasser:
Markus.Plamberger
Revision:
1.4
Durchschnittliche Bewertung: 3.92 (137 Abstimmungen)

Kommentieren nicht möglich

Chuck Norris has counted to infinity. Twice.