Install PHP 7.0 (phpng) on CentOS & RedHat

This guide will show how to install PHP 7.0 on RedHat and¬†CentOS Linux. This version of PHP is also known as PHPNG to indicate it is the “next generation” of PHP. Many fundamental improvements have been made – for example WordPress sites should see a 100% performance increase switching from PHP 5.6 to PHP 7.0.

Install Dependencies via Yum

Use yum to¬†install the dependencies we’ll need using the following command.

yum install -y \
    autoconf \
    bison \
    curl-devel \
    gcc \
    git \
    freetype\
    freetype-devel \
    libpng\
    libpng-devel \
    libxml2\
    libxml2-devel \
    libXpm\
    libXpm-devel \
    libmcrypt \
    libmcrypt-devel \
    mysql \
    mysql-devel \
    openssl \
    openssl-devel \
    recode \
    recode-devel

Running a newer version of RedHat/CentOS?

If you are running a recent version of your operating system, you can use yum to install bison. Note that it needs to be at least version 2.7 to compile PHPNG. As of the writing the latest for CentOS 5 on a yum repository is version 2.3, so you will need to install from source (below).

Install Bison 2.7 From Source

curl -O http://ftp.gnu.org/gnu/bison/bison-2.7.1.tar.gz
tar -xvf bison-2.7.1.tar.gz
cd bison-2.7.1
./configure
make && make install

Build PHPNG From Source

Now we need to clone the PHP-7.0.0 branch of the PHP source and compile it using the built in scripts.

git clone -b PHP-7.0.0 https://github.com/php/php-src.git
cd php-src
./buildconf --force
./configure \
    --prefix=/usr/local/opt/phpng \
    --with-config-file-path=/usr/local/etc/phpng \
    --enable-bcmath \
    --enable-calendar \
    --enable-exif \
    --enable-ftp \
    --enable-gd-native-ttf \
    --enable-gd-jis-conv \
    --enable-mbstring \
    --enable-sysvmsg \
    --enable-sysvsem \
    --enable-sysvshm \
    --enable-pcntl \
    --enable-wddx \
    --enable-zip \
    --with-bz2=/usr \
    --with-curl=/usr/lib64 \
    --with-freetype-dir=/usr \
    --with-gd \
    --with-gettext=/usr \
    --with-iconv \
    --with-jpeg-dir=/usr \
    --with-mcrypt \
    --with-mysql=/usr \
    --with-mysqli=/usr/bin/mysql_config \
    --with-openssl \
    --with-pdo-mysql=/usr \
    --with-png-dir=/usr \
    --with-recode=/usr \
    --with-t1lib=/usr \
    --with-xpm-dir=/usr \
    --with-zlib-dir=/usr \
    --with-zlib=/usr
make -j`grep -c ^processor /proc/cpuinfo` && make install

Use PHPNG

By default OS X will use the PHP binary located at /usr/bin/php, which as of this writing is PHP 5.5. To have PHPNG take precedence, will need to symlink to the /usr/local/bin directory. Run php -v to make sure you have the correct version, and if it’s not what you expected try which php to see the location that is being selected based on your $PATH.

ln -s /usr/local/opt/phpng/bin/php /usr/local/bin
php -v

PHP 7.0.0beta2 (cli) (built: Aug  3 2015 13:22:21) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *