Um den Umstieg von php4 auf php5 zu proben oder um für eine bestimmte Seite die neue Version von php zur Verfügung zu stellen, hilft ein Blick ein die folgende Anleitung.
Mit php 4.4.8 ist vermutlich die letzte Version von PHP4 erschienen. Der Support für diesen Versionszweig wurde somit auch mit Ablauf des Jahres 2007 eingestellt. Darum ist es sinnvoll auf die aktuelle Version zu aktualisieren, was jedoch auf einem Produktiv-Server nicht so einfach möglich ist, da eventuell Anhängigkeiten bestehen. Auf der Internetseite von PHP sind Tipps und eine FAQ bereitgestellt.
Üblicherweise läuft auf dem Server bereits php4 als Apache-Modul. Aufgrund der Anhängigkeiten von Debian ist es nicht möglich php5 als Zusatzmodul zu installieren, da sonst direkt php4 deinstalliert würde. Darum wird php5 mit den benötigten Zusatzmodulen als CGI-Modul (Wikipedia) eingerichtet:
apt-get install php5-cgi php5-gd php5-mcrypt php5-mhash php5-mysql php5-recode
Der Reihe nach werden nun einige Apache-Module aktiviert, die wie actions benötigt werden, sonst läuft php5 nicht als CGI-Modul:
a2enmod actions
a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include
Die Konfiguration findet in der Datei /etc/apache2/apache2.conf statt, wo auch AddType und AddHandler definiert werden:
ScriptAlias /cgi-bin/ “/usr/lib/cgi-bin/”
AddType application/x-httpd-php5 .php5
Action application/x-httpd-php5 “/cgi-bin/php”
Somit werden alle Dateien mit der Endung .php5 vom CGI-Modul verarbeitet statt mit dem Apache-Modul. Alle Dateien jedoch umzubenennen wäre jetzt eine Menge Arbeit. Es geht einfacher indem im gewünschten VHost, die folgenden Zeilen eingetragen werden:
<VirtualHost *:80>
<Directory /var/www/htdocs >
Options +ExecCGI
</Directory>
AddType application/x-httpd-php5 .php
</VirtualHost>
Nun werden alle Dateien mit php5 ausgeliefert und die Seite kann ausgiebig getestet werden bevor der komplette Umstieg von php4 zu php5 gemacht wird.
Ein testen der aktuellen Konfiguration und ein anschließender Neustart ist selbsverständlich:
apache2ctl configtest
apache2ctl restart
wo kommen die drei Zeilen
ScriptAlias /cgi-bin/ “/usr/lib/cgi-bin/”
AddType application/x-httpd-php5 .php5
Action application/x-httpd-php5 “/cgi-bin/php”
in der apache2.conf hin? einfach hinten rangebamselt vor dem inlcude der virtualhosts? oder wo?
lg
Sven
Hallo Sven,
Die Stelle wo es steht ist nicht wichtig, klar muss es vor dem Einbinden der VHosts stehen. Aber such in der apache2.conf nach AddType, dann steht da zum Beispiel eine Zeile wie “AddType application/x-tar .tgz” oder was mit .php und .phps, da kommen die genannten drei Zeilen dann drunter, damit es inhaltlich zusammen passt und später wiedergefunden wird.
Gruß