Apache2 mit PHP5 und PHP4 zeitgleich ausführen

Version 1.0
Author: Falko Timme
Last edited: 02/07/2006

Diese Anleitung veranschaulicht, wie man Apache2, mit PHP5 und PHP4 zeitgleich aktiviert, installiert und konfiguriert. Da es nicht möglich ist, PHP5 und PHP4 als Apache Module auszuführen, müssen wir eines als CGI und das andere als Apache Modul ausführen. In dieser Anleiung werde ich PHP5 als Apache Modul und PHP4 als CGI verwenden. Außerdem beschreibe ich das Setup für die Linux Distributionen Debian Sarge (3.1) und Ubuntu 5.10 (Breezy Badger).

Ich möchte darauf hinweisen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Möglichkeiten dieses Ziel zu erreichen - dies ist der Weg, den ich gewählt habe. Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Setup Für Debian Sarge (3.1)

Zunächst musst Du zumindest eine funktionierende Debian Basisinstallation haben, wie auf den ersten beiden Seiten des "Perfect Setup" für Debian Sarge hier auf HowtoForge beschrieben wird: http://www.howtoforge.com/perfect_setup_debian_sarge and http://www.howtoforge.com/perfect_setup_debian_sarge_p2
Da PHP5 in den offiziellen Debian Sarge Paketdatenbanken nicht verfügbar ist, müssen wir eine weitere Paketdatenbank (packages.dotdeb.org) der /etc/apt/sources.list hinzugügen. Füge diese beiden Zeilen:
deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all
der /etc/apt/sources.list hinzu (meine sieht dann wie folgt aus:
deb http://ftp2.de.debian.org/debian/ stable main
deb-src http://ftp2.de.debian.org/debian/ stable main deb http://packages.dotdeb.org stable all deb-src http://packages.dotdeb.org stable all deb http://security.debian.org/ stable/updates main
) und führe danach Folgendes aus
apt-get update
Nun können wir Apache2 sowie das Apache2-PHP5 Modul und das PHP4-CGI installieren:
apt-get install apache2 apache2-doc
apt-get install libapache2-mod-php5 php4-cgi

Als Nächstes können wir alle PHP5 und PHP4 Module, die wir auf unserem Server benötigen, wie folgt installieren:
apt-get install php5-curl php5-dev php5-gd php5-gmp php5-imap php5-ldap php5-mcrypt php5-mhash php5-ming php5-mysql php5-mysqli php5-odbc php5-pdo-mysql php5-pdo-sqlite php5-pear php5-pspell php5-snmp php5-sybase php5-tidy php4-curl php4-domxml php4-gd php4-gmp php4-imap php4-ldap php4-mcal php4-mcrypt php4-mhash php4-ming php4-mysql php4-odbc php4-pspell php4-recode php4-snmp php4-xslt php4-xdebug curl libwww-perl imagemagick (1 Zeile!)
Bearbeite /etc/apache2/apache2.conf. Ändere
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
zu
DirectoryIndex index.html index.htm index.shtml index.cgi index.pl index.php index.php4 index.xhtml
und füge auch diese beiden Zeilen hinzu (in dem Bereich, in dem Du AddType und AddHandler Direktiven findest):
AddHandler php-script .php4
Action php-script /cgi-bin/php4
Somit wird sicher gestellt, dass PHP Dateien mit der Endung .php4 als CGI ausgeschlossen werden. PHP Dateien mit der Endung .php werden vom Apache2-PHP5 Modul ausgeführt.
Als Nächstes müssen wir einige Apache Module aktivieren, wie zum Beispiel das actions Modul (sonst können wir PHP4 nicht als CGI ausführen):
a2enmod actions
a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

Starte Apache neu und Du bist fertig!
/etc/init.d/apache2 restart
Nun können wir unsere Installation testen: Füge die zwei Dateien info.php und info.php4 mit dem gleichen Inhalt:
<?php
phpinfo(); ?>
in /var/www ein (das ist der Standard Dokumenten-Root von Debians Apache2) und versuche in einem Browser auf sie zuzugreifen (wenn die IP Adresse des Servers zum Beispiel 192.168.0.100 ist, würdest Du http://192.168.0.100/info.php und http://192.168.0.100/info.php4 eingeben). Du müsstest zwei verschiedene PHP Versionen sehen, eine, die als Apache Modul (PHP5) ausgeführt wird und die andere (PHP4), als CGI bezeichnet wird:
info.php:

info.php4:

2 Setup Für Ubuntu 5.10 (Breezy Badger)

Dieses Setup unterscheidet sich nicht sehr vom Debian Sarge Setup.
Zunächst musst Du zumindest eine funktionierende Ubuntu 5.10 Basisinstallation haben, wie auf den ersten beiden Seiten des "Perfect Setup" für Ubuntu 5.10 "Breezy Badger" hier auf HowtoForge beschrieben wird: http://www.howtoforge.com/perfect_setup_ubuntu_5.10 and http://www.howtoforge.com/perfect_setup_ubuntu_5.10_p2
Die offiziellen Ubuntu Paketdatenbanken enthalten Pakte für PHP5 und PHP4, wir müssen also keine Paketdatenbanken von Drittanbietern verwenden. Pass jedoch auf, dass /etc/apt/sources.list wie folgt aussieht:
deb http://de.archive.ubuntu.com/ubuntu breezy main restricted
deb-src http://de.archive.ubuntu.com/ubuntu breezy main restricted deb http://de.archive.ubuntu.com/ubuntu breezy-updates main restricted deb-src http://de.archive.ubuntu.com/ubuntu breezy-updates main restricted deb http://de.archive.ubuntu.com/ubuntu breezy universe deb-src http://de.archive.ubuntu.com/ubuntu breezy universe deb http://security.ubuntu.com/ubuntu breezy-security main restricted deb-src http://security.ubuntu.com/ubuntu breezy-security main restricted deb http://security.ubuntu.com/ubuntu breezy-security universe deb-src http://security.ubuntu.com/ubuntu breezy-security universe
Führe dies aus
apt-get update
nachdem Du die /etc/apt/sources.list geändert hast.

Nun können wir Apache2 sowie die Apache2-PHP5 Module und das PHP4-CGI installieren:
apt-get install apache2 apache2-common apache2-doc apache2-mpm-prefork apache2-utils libapr0 libexpat1 ssl-cert
apt-get install libapache2-mod-php5 php4-cgi

Als Nächstes können wir alle PHP5 und PHP4 Module, die wir benötigen, wie folgt installieren:
apt-get install php5-imap php5-syck php-pear php5-curl php5-dev php5-gd php5-ldap php5-mhash php5-mysql php5-odbc php5-recode php5-snmp php5-sqlite php5-xmlrpc php5-xsl php4-auth-pam php4-imagick php4-mcrypt php4-rrdtool php4-sqlite php4-curl php4-domxml php4-gd php4-imap php4-ldap php4-mcal php4-mhash php4-mysql php4-odbc php4-pear php4-xslt (1 line!)
Bearbeite /etc/apache2/apache2.conf. Ändere
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
zu
DirectoryIndex index.html index.htm index.shtml index.cgi index.pl index.php index.php4 index.xhtml
und füge auch diese beiden Zeilen hinzu (in dem Bereich, in dem Du AddType und AddHandler Direktiven findest):
AddHandler php-script .php4
Action php-script /cgi-bin/php4
Damit wird sicher gestellt, dass PHP Dateien mit der Endung .php4 als CGI ausgeführt werden. PHP Dateien mit der Eindung .php werden von dem Apache2-PHP5 Modul ausgeführt.
Als Nächstes müssen wir einige Apache Module aktivieren, wie zum Beispiel die actions Module (sonst können wir PHP4 nicht als CGI ausführen):
a2enmod actions
a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

Starte Apache neu und Du bist fertig!
/etc/init.d/apache2 restart
Nun können wir unsere Installation testen: Füge zwei Dateien info.php und info.php4 mit dem gleichen Inhalt:
<?php
phpinfo(); ?>
in /var/www ein (das ist der Standard Dokumenten-Root von Ubuntus Apache2) und versuche in einem Browser auf sie zuzugreifen (wenn die IP Adresse des Servers zum Beispiel 192.168.0.100 ist, würdest Du http://192.168.0.100/info.php und http://192.168.0.100/info.php4 eingeben). Du müsstest zwei verschiedene PHP Versionen sehen, eine, die als Apache Modul ausgeführt wird(PHP5) und eine (PHP4), die als CGI bezeichnet wird:
info.php:

info.php4:


Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte