PHP 5.3.0 mit eigenem Port installieren (Windows, Xampp)

Einleitung

FLOW3 setzt PHP in mindestens der Version 5.3.0 voraus. Diese ist jetzt als stable-Version erhältlich. In Paketen wie xampp ist diese Version noch nicht enthalten, sie muss daher manuell installiert werden.

Wir zeigen Ihnen in diesem Tutorial, wie Sie PHP 5.3.0 zusätzlich zu Ihrer bestehenden PHP-Version so installieren, dass Sie beide PHP-Versionen parallel nutzen können. Rufen Sie ein Projekt mit Port 80 (also ohne Port-Angabe) auf, wird es mit Ihrer bestehenden PHP-Version bearbeitet. Rufen Sie das gleiche Projekt mit Port 81 auf, wird PHP 5.3.0 genutzt.

Dieses Tutorial basiert auf einer Xampp-Installation unter Windows XP. Xampp wurde in das Verzeichnis C:\xampp\ installiert. Sollten sie Xampp in einem anderen Verzeichnis installiert haben, müssen Sie die absoluten Pfadangaben entsprechend anpassen. Wenn Sie ein anderes Betriebssystem oder eine andere Grund-Installation verwenden, ist es wahrscheinlich dennoch hilfreich, das Tutorial zu lesen. Die wesentlichen Einstellungen werden Sie wahrscheinlich auf Ihre Umgebung übertragen können.

Kurzanleitung

Sie brauchen keine ausführlichen Erklärungen? Dann gehen Sie einfach die folgenden Schritte durch:

  1. Binaries php-5.3-win32-VC6-x86-latest.zip von der Seite http://windows.php.net/snapshots#php-5.3-ts-VC6-x86 herunterladen
  2. Einen Ordner C:\xampp\php\php5.3.0\ anlegen und zip-Datei dorthin entpacken
  3. Verzeichnis C:\xampp\apache\conf\ nach C:\xampp\apache\conf-php5.3.0\ kopieren
  4. Verzeichnis C:\xampp\apche\logs-php5.3.0\ anlegen
  5. Konfigurationsdateien im Verzeichnis conf-php5.3.0 ändern:
  6. httpd.conf:
    • Listen 81
    • Suchen/Ersetzen: conf/ zu conf-php5.3.0/
    • Suchen/Ersetzen: logs/ zu logs-php5.3.0/
    • Unterhalb von ServerRoot einfügen: PidFile logs-php5.3.0/httpd.pid
    • mod_rewrite einschalten
  7. extra\httpd-ssl.conf
    • Listen 4343
  8. extra\httpd-xampp.conf
    • Entfernen: LoadModule php5_module "C:/xampp/apache/bin/php5apache2.dll" entfernen
    • Folgende Zeilen einfügen:
      • LoadFile "C:/xampp/php/php5.3.0/php5ts.dll"
        LoadModule php5_module "C:/xampp/php/php5.3.0/php5apache2_2.dll"
        PHPIniDir "C:/xampp/php/php5.3.0"
  9. extra\httpd-vhosts.conf: Port und VirtualHosts entsprechend anpassen
  10. php5.3.0: php.ini-dist kopieren zu php.ini
  11. php.ini:
    • Extensions php_mbstring und php_pdo_sqlite aktivieren
    • extension_dir = 'C:\xampp\php\php5.3.0\ext\' (Achtung: einfache Anführungszeichen)
    • magic_quotes_gpc = Off
  12. Apache über Konsole starten: apache -f .\conf-php5.3.0\httpd.conf
  13. Oder als Dienst installieren: apache -k install -n Apache2.2-php5.3.0 -f .\conf-php5.3.0\httpd.conf

PHP 5.3.0 herunterladen und entpacken

Laden Sie sich die Windows-Binaries herunter: Sie brauchen die Datei php-5.3-win32-VC6-x86-latest.zip (PHP 5.3 - Windows x86 VC6 (thread safe))) von der Seite http://windows.php.net/snapshots/#php-5.3-ts-VC6-x86. Legen Sie innerhalb des Ordner C:\xampp\php\ einen Ordner php5.3.0 an und extrahieren Sie den Inhalt der heruntergeladenen zip-Datei in diesen Ordner.

Den Apache konfigurieren

Für die zweite PHP-Version werden Sie später einen zweiten Apache-Prozess starten, den Sie jetzt mit einer entsprechend angepassten Konfiguration versorgen müssen.
Außerdem soll er seine Log-Dateien in ein eigenes Verzeichnis schreiben.
Sie müssen zunächst also zwei Dinge tun:

  • Kopieren Sie das Verzeichnis C:\xampp\apache\conf\, und bennenen Sie die Kopie um in C:\xampp\apache\conf-php5.3.0\.
  • Legen Sie ein Verzeichnis C:\xampp\apche\logs-php5.3.0\ an.

In den folgenden Schritten ändern Sie die Konfigurationsdateien in dem neuen Ordner conf-php5.3.0\.

httpd.conf

  • Ändern Sie den Port von 80 zu 81:

Listen 81

  • Passen Sie die Includes der Konfigurationsdateien an. Das können Sie einfach mit Suchen und Ersetzen machen:
    Suchen Sie nach conf/ und ersetzen Sie dieses mit conf-php5.3.0/
  • Passen Sie die Verweise auf die Log-Dateien an:
    Suchen Sie nach logs/ und ersetzen Sie dieses mit
    logs-php5.3.0/
  • Fügen Sie den Verweis auf ein anderes PidFile hinzu (damit ersparen Sie sich unnötige Einträge im Error-Log), indem Sie folgende Zeile einfügen (z.B. unterhalb der Einstellung ServerRoot):

PidFile logs-php5.3.0/httpd.pid

  • Schalten Sie das Modul mod_rewrite ein, indem Sie die entsprechende Zeile einkommentieren, also das Semikolon am Anfang der Zeile einfügen:

LoadModule rewrite_module modules/mod_rewrite.so

extra\httpd-ssl.conf

Ändern Sie den SSL-Port:

Listen 4343

extra\httpd-xampp.conf

In dieser Datei bringen Sie dem Apache bei, wo die entsprechenden .dll-Dateien liegen, die er als PHP-Modul nutzen soll.

  • Entfernen Sie die folgende Zeile oder kommentieren Sie sie aus:

LoadModule php5_module "C:/xampp/apache/bin/php5apache2.dll"

  • Stattdessen fügen Sie die folgenden Zeilen ein:

#php5.3.0 settings:
#Preload the PHP interpreter dll so that apache can find it, even if it's not in the path
LoadFile "C:/xampp/php/php5.3.0/php5ts.dll"

#Load the sapi module for Apache
LoadModule php5_module "C:/xampp/php/php5.3.0/php5apache2_2.dll"

#Specify the directory that the php.ini is stored in
PHPIniDir "C:/xampp/php/php5.3.0"

extra\httpd-vhosts.conf

Passen Sie Ihre VirtualHost-Einstellungen an. Verweisen Sie dabei gleich auf das Public\-Verzeichnis Ihrer FLOW3-Installationen.

NameVirtualHost *:81

<VirtualHost *:81>
 DocumentRoot "C:/xampp/htdocs/"
 ServerName localhost
</VirtualHost>

<VirtualHost *:81>
 DocumentRoot "C:/xampp/htdocs/blog/Public/"
 ServerName blog.flow3.local
</VirtualHost>


PHP konfigurieren

Erstellen Sie von der Datei C:\xampp\php\php5.3.0\php.ini-dist im selben Verzeichnis eine Kopie und benennen Sie diese um in php.ini. Dort nehmen Sie die folgenden Einstellungen vor:

  • Aktivieren Sie die Extensions, die FLOW3 benötigt, indem Sie die beiden folgenden Zeilen einkommentieren:

extension=php_mbstring.dll
extension=php_pdo_sqlite.dll

  • Verweisen Sie auf das Verzeichnis, in dem die Extensions liegen:

extension_dir = 'C:\xampp\php\php5.3.0\ext\'

--> Caution: PHP 5.3 kann mit doppelten Anführungszeichen in der php.ini nicht umgehen, auch wenn diese in den Kommentaren immer noch vorgegeben werden. Verwenden Sie daher einfache Anführungszeichen.

  • FLOW3 verlangt die Deaktivierung der magic quotes für GET, POST und Cookies:

magic_quotes_gpc = Off



Den (zweiten) Apache starten

Über die Eingabeaufforderung

Wenn die Konfiguration abgeschlossen ist, starten Sie einen zusätzlichen Apache. Gehen Sie dazu in die DOS-Eingabeaufforderung, wechseln Sie in das Verzeichnis C:\xampp\apache\bin
und geben folgenden Befehl ein:

apache -f .\conf-php5.3.0\httpd.conf

Den so gestarteten Apache beenden Sie wieder, indem Sie in der Konsole Strg+C drücken.

Als Dienst installieren

Sie können auch einen zweiten Apache-Dienst installieren.
Gehen Sie dazu in die DOS-Eingabeaufforderung und wechseln Sie in das Verzeichnis C:\xampp\apache\bin\.
Mit dem folgenden Befehl installieren Sie den Dienst:

apache -k install -n Apache2.2-php5.3.0 -f .\conf-php5.3.0\httpd.conf

Den Dienst können Sie jetzt über die Dienste-Verwaltung in der Systemsteuerung starten oder in der Eingabeaufforderung:

net start Apache2.2-php5.3.0

Erfolg pfrüfen

Kontrollieren Sie, ob Ihre Installation erfolgreich war, indem Sie phpinfo() für beide Ports aufrufen:

Prüfen Sie in der Ausgabe, ob die PHP-Version stimmt und ob der Apache auf die richtige php.ini zugreift

Probleme beheben

Wenn beim Start des Apache Probleme auftreten, finden Sie in zwei Quellen meistens Hinweise zur Behebung:

  • Prüfen Sie das Error-Log des Apache. Achten Sie darauf, dass Sie in der richtigen Log-Datei nachschauen. Prüfen Sie ggf., ob der Verweis auf das log-Verzeichnis in der httpd.conf stimmt
  • Schauen Sie sich die Ereignisse in der Windows-Systemsteuerung an (Start -> Systemsteuerung -> Verwaltung -> Ereignisanzeige -> Anwendung). Dort finden Sie besonders bei Abstürzen des Apache oft detailliertere Informationen als im Error-Log.