How To Build PHP 5.6 (PHP-FPM & FastCGI) with Zend OPcache And APCu For ISPConfig 3 On Debian 7 (Wheezy) - Page 2
On this page
3 Building PHP 5.6.36 (FastCGI)
Download and extract PHP 5.6.36:
mkdir /opt/phpfcgi-5.6.36
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget http://de.php.net/get/php-5.6.36.tar.bz2/from/this/mirror -O php-5.6.36.tar.bz2
tar jxf php-5.6.36.tar.bz2
cd php-5.6.36/
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: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
root@server1:/usr/local/src/php5-build/php-5.6.36#
)
Configure and build PHP 5.6.36 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 --prefix=/opt/phpfcgi-5.6.36 --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 --enable-exif --enable-bcmath --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 --with-xmlrpc --with-xsl --enable-opcache --enable-cgi
The last switch (--enable-cgi) makes sure this PHP version will work with FastCGI.
make
make install
Copy php.ini to the correct location:
cp /usr/local/src/php5-build/php-5.6.36/php.ini-production /opt/phpfcgi-5.6.36/lib/php.ini
To enable the Zend OPcache, open /opt/phpfcgi-5.6.36/lib/php.ini...
vi /opt/phpfcgi-5.6.36/lib/php.ini
... and add the following line at the end:
[...] zend_extension=opcache.so
That's it - if you like, you can now install some additional modules like APCu, memcache, memcached, and ioncube.
The APCu, memcache, and memcached modules can be installed through PEAR which we must install and initialize first:
apt-get -y install php-pear
cd /opt/phpfcgi-5.6.36/etc
pecl -C ./pear.conf update-channels
APCu can now be installed as follows:
pecl -C ./pear.conf install channel://pecl.php.net/apcu-4.0.6
Accept all default values. Afterwards, open /opt/phpfcgi-5.6.36/lib/php.ini...
vi /opt/phpfcgi-5.6.36/lib/php.ini
... and add the line extension=apcu.so at the end of the file (you can also configure some additional APCu settings):
[...] extension=apcu.so apc.enabled=1 apc.shm_size=128M apc.ttl=0 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
The memcache extension can be installed as follows:
pecl -C ./pear.conf install memcache
Open /opt/phpfcgi-5.6.36/lib/php.ini...
vi /opt/phpfcgi-5.6.36/lib/php.ini
... and add the line extension=memcache.so at the end of the file:
[...] extension=memcache.so
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.6.36) - this PHP version will be listed under this name in the website settings in ISPConfig:
Go to the FastCGI Settings tab (the PHP-FPM Settings tab can be left empty) and fill out the fields as follows:
4 Links
- PHP: http://www.php.net/
- ISPConfig: http://www.ispconfig.org/
- Debian: http://www.debian.org/