PHP 7 的编译安装配置教程详解

作者:袖梨 2022-06-24

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

相关文章

精彩推荐