转载声明:著作权归作者所有,该内容欢迎转载,但转载时务必保留以下网址和作者信息。尊重原创,感谢有你!
作者:Chongyi 原文地址:https://www.insp.top/content/make-install-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 等,还需要 re2c
和 bison
这两个。这两个都是 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: