Inspirer

PHP 7 的编译安装

之前有一篇 《PHP 7 开发版本编译安装》,不过那时候连 RC 版都不是,昨日正式版已经在 Github 上发布(参见: https://github.com/php/php-src/releases) ,于是乎迫不及待的在此分享其编译安装的过程。

其实 php 的编译安装相当简单,且每个版本差异不大,正因为如此之前版本的编译安装过程也可以参考,当然,需要注意的是,每个版本的编译参数存在部分差异,以 ./configure --help 中具体描述的编译配置参数为准。

本文中系统环境为 CentOS 7 64bit,如使用其他系统环境的,请注意在某些 依赖安装环节 的差异。

准备工作

对于 CentOS ,yum 我向来是用作安装大批量依赖的工具,所以,一股脑安装这些依赖库吧。

yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses curl openssl-devel gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel

当然,个别依赖库可能需要手动编译安装,因此需要注意这个问题。在下文中,对于某些依赖库、组件我会做一些说明。

除了上述依赖的,我们还需要查看 php 编译安装说明文档,以确认还是否需要其他组件。

在源码包中的 INSTALL 文件里,可以看到相关说明:

Prerequisite knowledge and software for compiling:

  • Basic Unix skills (being able to operate "make" and a C compiler)

  • An ANSI C compiler

  • A web server

  • Any module specific components (such as GD, PDF libs, etc.)

    When building directly from Git sources or after custom modifications

    you might also need:

  • autoconf: 2.13+ (for PHP < 5.4.0), 2.59+ (for PHP >= 5.4.0)

  • automake: 1.4+

  • libtool: 1.4.x+ (except 1.4.2)

  • re2c: Version 0.13.4 or newer

  • flex: Version 2.5.4 (for PHP <= 5.2)

  • bison: Version 1.28 (preferred), 1.35, or 1.75

之前我们已经安装了 gcc 、 automake 、 autoconf 等,还需要 re2cbison 这两个。这两个都是 PHP 的语法分析器。(突然发现写这篇文章的 9 小时前 RE2C 发布了新的版本)。两者的下载地址:

RE2C http://sourceforge.net/projects/re2c/files/0.15.3/re2c-0.15.3.tar.gz

BSION http://ftp.gnu.org/gnu/bison/bison-3.0.4.tar.gz

然后分别编译安装,这两个编译安装不需要什么特别的配置参数,很直接。

当然,还有 libmcrypt 这个东西,下载地址: ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz 。这玩意儿必须的。

PHP 的编译安装

首先是从 github 下载源码包: https://github.com/php/php-src/archive/php-7.0.0.tar.gz

下载后解压,进入 PHP 源码目录:

tar zxvf php-7.0.0.tar.gz
cd php-src-php-7.0.0

调用 buildconf 生成 configure 文件:

./buildconf --force

生成了 configure 文件后,我们就需要着手开始进行编译安装的配置,如果你想知道有哪些编译配置选项,仅需 ./configure --help 即可查看。

参考配置如下:

./configure \
--prefix=/usr/local/php/7.0.0 \
--with-config-file-path=/usr/local/php/7.0.0/etc \
--with-config-file-scan-dir=/usr/local/php/7.0.0/etc/conf.d \
--enable-fpm \
--with-fpm-user=web \
--with-fpm-group=www \
--enable-soap \
--with-openssl \
--with-openssl-dir \
--with-mcrypt \
--with-pcre-regex \
--with-zlib \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-mbstring \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-pdo-mysql \
--with-zlib-dir \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd \
--with-mysqli \
--without-pear

配置执行完毕后,执行编译安装:

make && make install

大功告成!现在只需要将 /usr/local/php/7.0.0/bin 中的可执行文件软连接到 /bin 下即可,当然也可以自行选择 PATH 环境变量指定的路径中,这样就可以全局访问 PHP 解析执行器了。

完成后,执行 php -v 输出:

PHP 7.0.0 (cli) (built: Dec  3 2015 11:29:49) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies

Nice!! :tada: :tada: :tada::confetti_ball: :confetti_ball: :confetti_ball: