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
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔