PHP7 Compile

Created by: Lester Caine, Last modification: 26 Jan 2015 (11:57 GMT)

Installing additional packages to a PHP configuration

We need the following development packages to complete the compilation process
gcc
make
autoconf
automake
libtool
m4
php5-devel

Added to this list from previous configuration is bison.

In addition the following additional packages packages are needed to compile some of the extensions
firebird-devel (firebird/interbase)
libbz2-devel (MagickWand)
ImageMagick-devel (MagickWand)

But not sure yet what work is needed on MagickWand to make it work with PHP7.

Clean sheet

Starting point was a clean clone of the php-src repo from github using thg to create a local Mercurial copy of the code.
git+ssh://git@github.com:php/php-src
Download took more than 24 hours in the end, but the local copy is now on line as php-src port so I can work against that locally.
For convenience I have a view as PHP-5.6.5 in parallel with master so I can easily compare changes made between the two code bases.

Moving forward

Build process for local master copy ...

buildconf
./configure --enable-fpm --prefix=/opt/php7 --enable-shared=yes --enable-static=no --without-pear --enable-fpm --with-config-file-path=/etc/php7/fpm --with-config-file-scan-dir=/etc/php7/fpm/conf.d --enable-mysqlnd
make
make install

Currently this has a problem with PHAR and set_magic_quotes_runtime() in PEAR. That problem had been addressed previously in my local copy of PEAR which was cleaned up to be e_strict complliant, but those changes have not made it into the distributed PEAR code.

Next step is to get php_interbase compiling, but I may well refactor this as a clean php_firebird using the fbird_* a1ias set.