Windows: Apache, FastCGI und PHP

Um PHP-basierte Webanwendungen performanter zu machen, kann man statt des klassischen Apache-Modules auf FastCGI zurückgreifen. Wenn man PHP mit dem IIS verwenden möchte, kommt man um FastCGI nicht herum.

Anbei eine Anleitung, wie man unter Windows den Apache-Webserver mit FastCGI und PHP installiert.

Ändert man die Pfade ab, lässt sich diese Anleitung vermutlich auch für Linux verwenden. Dies habe ich allerdings nicht getestet.

In diesem Beispiel kommt der Apache-Webserver von Apache Lounge unter Windows 7 Professional x64 zum Einsatz.

Apache installieren

C:\Apache2

entpacken.

  • In einer Eingabeaufforderung mit erhöhten Rechten (rechtsklick “Als Administrator ausführen”) folgenden Befehl eingeben, um den Apache-Webserver als Dienst zu installieren:
C:\Apache2\bin\httpd -k install
  • Um den Webserver zu starten entweder in einer Eingabeaufforderung mit erhöhten Rechten den Befehl
C:\Apache2\bin\httpd -k start

oder

net start apache2.2

eingeben.

Alternativ kann man auch über “Computerverwaltung – Dienste und Anwendungen – Dienste – Apache2.2” den Webserver starten.

FastCGI-Module installieren

  • Das FastCGI-Module “mod_fcgid…” (x86/32-bitx64/64-bit) herunterladen und entpacken.
  • Die Datei “mod_fcgid.so” nach “C:\Apache2\modules” kopieren.
  • Die Apache-Konfigurationsdatei “httpd.conf” im Ordner “C:\Apache2\conf” editieren und wie folgt abändern:

Zeile 219 von

"Options Indexes FollowSymLinks"

zu

"Options Indexes FollowSymLinks ExecCGI"

erweitern.

Zeile 242 von

DirectoryIndex index.html

zu

DirectoryIndex index.html index.php

erweitern.

  • Am Ende der Konfigurations-Datei folgende Zeilen einfügen:
LoadModule fcgid_module modules/mod_fcgid.so
FcgidInitialEnv PHPRC "c:/php"
FcgidInitialEnv PATH "c:/php;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;"
FcgidInitialEnv SystemRoot "C:/Windows"
FcgidInitialEnv SystemDrive "C:"
FcgidInitialEnv TEMP "C:/WINDOWS/Temp"
FcgidInitialEnv TMP "C:/WINDOWS/Temp"
FcgidInitialEnv windir "C:/WINDOWS"
FcgidIOTimeout 64
FcgidConnectTimeout 16
FcgidMaxRequestsPerProcess 500
<Files ~ "\.php$">
AddHandler fcgid-script .php
FcgidWrapper "c:/php/php-cgi.exe" .php
</Files>

PHP installieren

PHP gibt es nur als x86/32-bit, dafür aber in x weiteren Versionen. Eine kurze Aufschlüsselung habe ich hier geschrieben.

Für diesen Artikel habe ich die Version “VC9 x86 Non Thread Safe” als Zip-Archiv verwendet.

NTS (Non Thread Safe) macht nur bei MultiCore- bzw. MultiCPU-Systemen Sinn.

  • PHP-Archiv herunterladen und nach “C:\PHP” entpacken.
  • Im Ordner “C:\PHP” die Datei “php.ini-production” kopieren und in “php.ini” umbenennen.
  • Die Datei “php.ini” editieren und wie folgt abändern:

Zeile 998 von

; date.timezone =

zu

date.timezone = "Europe/Berlin"

erweitern.

  • Damit die geänderte Konfiguration übernommen wird, muss der Apache-Webserver neu gestartet werden. Entweder wieder über die Diensteverwaltung (z.B. innerhalb der Computerverwaltung) oder in einer Eingabeaufforderung mit erhöhten Rechten mit dem Befehl
C:\Apache2\bin\httpd -k restart

oder

net stop apache2.2
net start apache2.2

Damit ist die Basis-Einrichtung von Apache mit FastCGI und PHP abgeschlossen.

1 Kommentar

  1. Sascha V

    Ist es möglich, diese excellente Tutorial zu erweitern?
    Ich würde gerne wissen, wie manmit dieser Konfig mehrere php Versionen parallel betreiben kann.
    Wie lege ich fest, welche Version default ist und wie kann ich mittels AppHandler in der .htdocs steuern, dass eine andere Version für das aktuelle Script gilt?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

© 2024 Andy's Blog

Theme von Anders NorénHoch ↑