How To Use Multiple PHP Versions (PHP-FPM & FastCGI) With ISPConfig 3 (Debian Wheezy)
|
Submitted by falko (Contact Author) (Forums) on Sun, 2013-03-17 18:19. :: Debian | ISPConfig | Web Server | Apache | Control Panels | nginx | PHP
How To Use Multiple PHP Versions (PHP-FPM & FastCGI) With ISPConfig 3 (Debian Wheezy)Version 1.0 Since ISPConfig 3.0.5, it is possible to use multiple PHP versions on one server and select the optimal PHP version for a website. This feature works with PHP-FPM (starting with PHP 5.3) and FastCGI (all PHP 5.x versions). This tutorial shows how to build PHP 5.3 and PHP 5.4 as a PHP-FPM and a FastCGI version on a Debian Wheezy server. These PHP versions can be used together with the default PHP (installed through apt) in ISPConfig. I do not issue any guarantee that this will work for you!
1 Preliminary NoteI will install PHP 5.3.22 and PHP 5.4.12, the latest PHP 5.3 and 5.4 versions at the time of this writing. I will also show how to build some additional PHP extensions such as APC, memcache, memcached, and ioncube. Please note that PHP-FPM can be used on both Apache and nginx servers, while FastCGI is available only for Apache servers. PHP-FPM and FastCGI are mutually exclusive in PHP 5.3 and 5.4, that's why I show two ways of building PHP, one for PHP-FPM, one for FastCGI, however you can compile PHP twice to get both, one time with --enable-fpm and one time with --enable-cgi (make sure to use different base directories, such as /opt/php-5.3.22 for PHP-FPM and /opt/phpfcgi-5.3.22 for FastCGI).
2 Building PHP 5.3.22 (PHP-FPM)Download and extract PHP 5.3.22: mkdir /opt/php-5.3.22 cd php-5.3.22/ Install the prerequisites for building 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 (The last command is needed if you build PHP with --with-imap, because otherwise ./configure will stop with the following error: checking for crypt in -lcrypt... yes ) Configure and build PHP 5.3.22 as follows (you can adjust the ./configure command to your needs, take a look at ./configure --help to see all available options; if you use a different ./configure command, it is possible that additional libraries are required, or the build process will fail): ./configure \ The last switch (--enable-fpm) makes sure this PHP version will work with PHP-FPM. make Copy php.ini and php-fpm.conf to the correct locations: cp /usr/local/src/php5-build/php-5.3.22/php.ini-production /opt/php-5.3.22/lib/php.ini cp /opt/php-5.3.22/etc/php-fpm.conf.default /opt/php-5.3.22/etc/php-fpm.conf Open /opt/php-5.3.22/etc/php-fpm.conf and adjust the following settings - in the listen line you must use an unused port (e.g. 8999; port 9000 might be in use by Debian's default PHP-FPM already), and you must add the line include=/opt/php-5.3.22/etc/pool.d/*.conf at the end: vi /opt/php-5.3.22/etc/php-fpm.conf
Create the pool directory for PHP-FPM: mkdir /opt/php-5.3.22/etc/pool.d Next create an init script for PHP-FPM: vi /etc/init.d/php-5.3.22-fpm
Make the init script executable and create the system startup links: chmod 755 /etc/init.d/php-5.3.22-fpm Finally start PHP-FPM: /etc/init.d/php-5.3.22-fpm start As long as there are no pools in /opt/php-5.3.22/etc/pool.d, you will get this warning which you can ignore: root@server1:/usr/local/src/php5-build/php-5.3.22# /etc/init.d/php-5.3.22-fpm start That's it - if you like, you can now install some additional modules like APC, memcache, memcached, and ioncube. The APC, memcache, and memcached modules can be installed through PEAR which we must install and initialize first: apt-get -y install php-pear cd /opt/php-5.3.22/etc pecl -C ./pear.conf update-channels APC can now be installed as follows: pecl -C ./pear.conf install apc Accept all default values. Afterwards, open /opt/php-5.3.22/lib/php.ini... vi /opt/php-5.3.22/lib/php.ini ... and add the line extension=apc.so at the end of the file (you can also configure some additional APC settings):
The memcache extension can be installed as follows: pecl -C ./pear.conf install memcache Open /opt/php-5.3.22/lib/php.ini... vi /opt/php-5.3.22/lib/php.ini ... and add the line extension=memcache.so at the end of the file:
The memcached extension can be installed as follows: apt-get install libmemcached-dev pecl -C ./pear.conf install memcached Open /opt/php-5.3.22/lib/php.ini... vi /opt/php-5.3.22/lib/php.ini ... and add the line extension=memcached.so at the end of the file:
The ionCube Loader can be installed as follows: cd /tmp Next download and unpack the correct ionCube Loader package for your architecture (x86_64 or x86). For x86_64: wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz For x86: wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz Proceed as follows: cp ioncube/ioncube_loader_lin_5.3.so /opt/php-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so Add the line zend_extension = /opt/php-5.3.22/lib/php/extensions/no-debug-non-zts-20090626/ioncube.so right at the beginning of the file (before the [PHP] line):
Reload PHP-FPM afterwards: /etc/init.d/php-5.3.22-fpm reload In ISPConfig 3.0.5, you can configure the new PHP version under System > Additional PHP Versions. On the Name tab, you just fill in a name for the PHP version (e.g. PHP 5.3.22) - this PHP version will be listed under this name in the website settings in ISPConfig: Go to the PHP-FPM Settings tab (the FastCGI Settings tab can be left empty) and fill out the fields as follows:
|





Recent comments
14 hours 44 min ago
19 hours 43 min ago
21 hours 9 min ago
22 hours 2 min ago
23 hours 46 min ago
1 day 4 hours ago
1 day 5 hours ago
1 day 7 hours ago
1 day 20 hours ago
1 day 21 hours ago