Mehrere PHP Verionen unter Plesk auf Linux

6 Feb 2014 - Lesezeit: 4 Minuten

Auf der Schreibtischwerkstatt habe ich einen weiteren Artikel über die Installation und Einrichtung mehrerer PHP Versionen unter Linux für Plesk geschrieben. Diesen kopiere ich der Einfachheit halber auch auf meinen Blog.

Bei der Arbeit mit Plesk kann es sinnvoll sein mehrere unterschiedliche Versionen von PHP innerhalb von Plesk zur Verfügung zu haben. Zum einen erleichtert es doch immens die Arbeit bei der Migration von Webseiten, zum anderen kann man so individueller auf die Bedürfnisse der Umgebung eingehen. Ziel ist es die jeweils zu verwendende PHP Version innerhalb des Plesk Panels auswählen zu können.

Grundsätzlich werden alle PHP Versionen als FastCGI zur Verfügung gestellt.

Das diese Pakete nicht vorkompiliert zur Verfügung stehen muss selbst hand angelegt werden. Hier gibt es diverse Anleitungen im Netz wie man unter Debian das alle Voraussetzungen schafft um ein sauberes Kompilat zu erhalten. Als hilfreich hat sich folgende Umgebung herausgestellt:

apt-get install apache2-suexec libpcre3-dev libpcre++-dev libpng12-dev libbz2-dev libcurl4-openssl-dev libc-client2007e-dev libjpeg-dev libgif-dev libgif4 libpthread-stubs0 libpthread-stubs0-dev libx11-dev libxau-dev libxcb1-dev libxdmcp-dev libxpm-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev xtrans-dev libxml2-dev libmysqlclient-dev libfreetype6-dev build-essential make wget build-essential

An dieser stelle muss nach Bedarf ergänzt werden, was man braucht oder aber eben nicht.

Nun fangen wir an mit der Einrichtung von PHP 5.3:
cd /usr/src
wget http://de1.php.net/get/php-5.3.28.tar.gz/from/this/mirror -O php.tar.gz
tar xzvf php.tar.gz
cd php-5.3.28

ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

./configure --prefix=/usr/share/php53 --datadir=/usr/share/php53 --mandir=/usr/share/man --bindir=/usr/bin/php53 --with-libdir=lib/x86_64-linux-gnu --includedir=/usr/include/php53 --sysconfdir=/etc/php53/apache2 --with-config-file-path=/etc/php53/apache2 --with-config-file-scan-dir=/etc/php53/conf.d --enable-libxml --enable-session --with-pcre-regex=/usr --enable-xml --enable-simplexml --enable-filter --disable-debug --enable-inline-optimization --disable-rpath --disable-static --enable-shared --with-pic --with-gnu-ld --with-mysql --with-gd --with-jpeg-dir --with-png-dir --with-xpm-dir --enable-exif --with-zlib --with-bz2 --with-curl --with-ldap --with-mysqli --with-freetype-dir --enable-soap --enable-sockets --enable-calendar --enable-ftp --enable-mbstring --enable-gd-native-ttf --enable-bcmath --enable-zip --with-pear --with-openssl=/usr/ --with-imap --with-imap-ssl --with-kerberos --enable-phar --enable-pdo --with-pdo-mysql --with-mysqli

make
make test
make install

Wenn alles durchgelaufen ist, erhalten wir eine interessante Übersicht:
Installing PHP SAPI module: cgi
Installing PHP CGI binary: /usr/bin/php53/
Installing PHP CLI binary: /usr/bin/php53/
Installing PHP CLI man page: /usr/share/man/man1/
Installing build environment: /usr/share/php53/lib/php/build/
Installing header files: /usr/include/php53/php/
Installing helper programs: /usr/bin/php53/
program: phpize
program: php-config
Installing man pages: /usr/share/man/man1/
page: phpize.1
page: php-config.1
Installing PEAR environment: /usr/share/php53/lib/php/
[PEAR] Archive_Tar - already installed: 1.3.11
[PEAR] Console_Getopt - already installed: 1.3.1
[PEAR] PEAR - already installed: 1.9.4
Wrote PEAR system config file at: /etc/php53/apache2/pear.conf
You may want to add: /usr/share/php53/lib/php to your php.ini include_path
[PEAR] Structures_Graph- already installed: 1.0.4
[PEAR] XML_Util - already installed: 1.2.1
/usr/src/php-5.3.28/build/shtool install -c ext/phar/phar.phar /usr/bin/php53
ln -s -f /usr/bin/php53/phar.phar /usr/bin/php53/phar
Installing PDO headers: /usr/include/php53/php/ext/pdo/

Das ist aus dem Grund interessant, weil es und etwas anschaulicher zeigt wo unsere
Datein liegen.

Nun kopieren wir noch die Beispielkonfigurationsdatei:
cp php.ini-production /etc/php53/apache2/php.ini

Wenn das erledigt ist, können wir Plesk mitteilen, wo es unser neues PHP findet, wie es heißen soll und was es damit anfangen soll:

/usr/local/psa/bin/php_handler --add -id PHP-5.3.28 -displayname NEWPHP-5.3 -path /usr/bin/php53/php-cgi -type fastcgi -phpini /etc/php53/apache2/php.ini

Haben wir das erledigt brauchen wir einfach nur noch unseren Apache neu starten und haben in den Hostingeinstellung der Pleskdomain unsere neue Version PHP mit dem Namen NEWPHP-5.3 zur Verfügung.

 

Quellen:

http://massivelydigital.com/run-two-versions-of-php-on-one-plesk-11-server/
http://blogs.reliablepenguin.com/2013/10/01/plesk-11-5-with-multiple-php-versions
http://zgadzaj.com/how-to-install-php-53-and-52-together-on-ubuntu-1204
http://wiki.apache.org/httpd/php-fcgid
http://www.soeren-hentzschel.at/technik/linux-server/2013/05/17/php-5-3-und-5-4-unter-debian-7-wheezy-parallel-installieren/