Mehrere PHP Versionen (PHP-FPM & FastCGI) mit ISPConfig 3 benutzen (Ubuntu 12.04 LTS)
5 PHP 5.4.12 bauen (FastCGI)
Laden Sie PHP 5.4.12 herunter und entpacken es:
mkdir /opt/phpfcgi-5.4.12
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget http://de.php.net/get/php-5.4.12.tar.bz2/from/this/mirror -O php-5.4.12.tar.bz2
tar jxf php-5.4.12.tar.bz2
cd php-5.4.12/
Installieren Sie die vorausgesetzten Pakete zum Bau von PHP5:
apt-get install build-essential
apt-get build-dep php5
apt-get install libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
(Der letzte Befehl wird benötigt wenn Sie PHP mit –with-imap bauen, andernfalls würde ./configure mit folgendem Fehler abbrechen:
checking for crypt in -lcrypt… yes
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
root@server1:/usr/local/src/php5-build/php-5.4.12#
)
Konfigurieren und bauen Sie PHP 5.4.12 folgendermaßen (Sie können den ./configure Befehl Ihren Wünschen nach anpassen. Sehen Sie sich
./configure –help
an um eine Liste der verfügbaren Optionen zu erhalten; benutzen Sie einen anderen ./configure Befehl, ist es möglich, dass zusätzliche Libraries benötigt werden, oder der Bauprozess wird fehlschlagen):
./configure –prefix=/opt/phpfcgi-5.4.12 –with-pdo-pgsql –with-zlib-dir –with-freetype-dir –enable-mbstring –with-libxml-dir=/usr –enable-soap –enable-calendar –with-curl –with-mcrypt –with-zlib –with-gd –with-pgsql –disable-rpath –enable-inline-optimization –with-bz2 –with-zlib –enable-sockets –enable-sysvsem –enable-sysvshm –enable-pcntl –enable-mbregex –with-mhash –enable-zip –with-pcre-regex –with-mysql –with-pdo-mysql –with-mysqli –with-jpeg-dir=/usr –with-png-dir=/usr –enable-gd-native-ttf –with-openssl –with-fpm-user=www-data –with-fpm-group=www-data –with-libdir=/lib/x86_64-linux-gnu –enable-ftp –with-imap –with-imap-ssl –with-kerberos –with-gettext –enable-cgi
Die letzte Option (–enable-cgi) stellt sicher, dass diese PHP Version mit FastCGI funktioniert.
make
make install
Kopieren Sie php.ini in das korrekte Verzeichnis:
cp /usr/local/src/php5-build/php-5.4.12/php.ini-production /opt/phpfcgi-5.4.12/lib/php.ini
Das war’s – wenn Sie möchten, können Sie nun einige zusätzliche Module wie APC, memcache, memcached und ioncube installieren.
Die APC, memcache und memcached Module können durch PEAR installiert werden, welches Sie zuerst installieren und initialisieren müssen:
apt-get -y install php-pear
cd /opt/phpfcgi-5.4.12/etc
pecl -C ./pear.conf update-channels
APC kann nun wie folgt installiert werden:
pecl -C ./pear.conf install apc
Bestätigen Sie alle Standardwerte. Öffnen Sie anschließend /opt/phpfcgi-5.4.12/lib/php.ini…
vi /opt/phpfcgi-5.4.12/lib/php.ini
… und fügen die Zeile extension=apc.so am Ende der Datei hinzu (Sie können außerdem zusätzliche APC Einstellungen konfigurieren):
[...] extension=apc.so apc.enabled=1 apc.shm_size=128M apc.ttl=0 apc.user_ttl=600 apc.gc_ttl=600 apc.enable_cli=1 apc.mmap_file_mask=/tmp/apc.XXXXXX ;apc.mmap_file_mask=/dev/zero ;apc.shm_segments = 5 |
Die memcache Erweiterung kann folgendermaßen installiert werden:
pecl -C ./pear.conf install memcache
Öffnen Sie /opt/phpfcgi-5.4.12/lib/php.ini…
vi /opt/phpfcgi-5.4.12/lib/php.ini
… und fügen am Ende der Datei die Zeile extension=memcache.so hinzu:
[...] extension=memcache.so |
Die memcached Erweiterung kann folgendermaßen installiert werden:
apt-get install libmemcached-dev
ln -s /usr/include/libmemcached /usr/include/libmemcached-1.0
pecl -C ./pear.conf install memcached
Öffnen Sie /opt/phpfcgi-5.4.12/lib/php.ini…
vi /opt/phpfcgi-5.4.12/lib/php.ini
… und fügen die Zeile extension=memcached.so am Ende der Datei hinzu:
[...] extension=memcached.so |
Der ionCube Loader kann wie folgt installiert werden:
cd /tmp
Laden Sie als nächstes das korrekte ionCube Loader Paket für Ihre Architektur (x86_64 oder x86) herunter und entpacken es.
Für x86_64:
wget http://downloads2.ioncube.com/loader_download /ioncube_loaders_lin_x86-64.tar.gz
tar xfvz ioncube_loaders_lin_x86-64.tar.gz
Für x86:
wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar xfvz ioncube_loaders_lin_x86.tar.gz
Fahren Sie wie folgt fort:
cp ioncube/ioncube_loader_lin_5.4.so /opt/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so
vi /opt/phpfcgi-5.4.12/lib/php.ini
Fügen Sie die Zeile zend_extension = /opt/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so gleich am Anfang der Datei ein (vor der [PHP] Zeile):
zend_extension = /opt/phpfcgi-5.4.12/lib/php/extensions/no-debug-non-zts-20100525/ioncube.so [PHP] [...] |
In ISPConfig 3.0.5 können Sie die neue PHP Version unter System > Additional PHP Versions konfigurieren. Im Name Reiter tragen Sie lediglich einen Namen für die PHP Version ein (z.B. PHP 5.4.12) – die PHP Version wird unter dem eingetragenen Namen in den Webseiteneinstellungen von ISPConfig aufgeführt werden:
Begeben Sie sich in den FastCGI Settings Reiter (der PHP-FPM Settings Reiter kann leer gelassen werden) und füllen Sie die Felder wie folgt aus:
6 Links
- PHP: http://www.php.net/
- ISPConfig: http://www.ispconfig.org/
- Ubuntu: http://www.ubuntu.com/
About The Author
Falko Timme ist der Eigentümer von Timme Hosting (ultra-schnelles nginx Webhosting). Er ist der hauptzuständige Autor von HowtoForge (seit 2005) und einer der Kernentwickler von ISPConfig (seit 2000) und hat außerdem zum O’Reilly Buch “Linux System Administration” beigetragen.