跳到主要内容

在 Ubuntu Server 16.04 上编译安装 PHP 5.6

· 阅读需 3 分钟

./configure

常用参数

参数格式参数值要求
--prefix=PHP 安装路径可选
--with-apxs2=Apache2 的 apxs 程序的路径必须
--with-config-file-path=php.ini 搜索路径必须

需要的 PHP 扩展

扩展名称./configure参数依赖安装
bcmath--enable-bcmath
bz2--with-bz2=sharedsudo apt install libbz2-dev
calendar--enable-calendar
curl--with-curl=shared
exif--enable-exif
gd--with-gd=sharedsudo apt install libgd-dev(注释1)
gettext--with-gettext=shared
intl--enable-intl
mbstring--enable-mbstring
mcrypt--with-mcrypt=sharedsudo apt install libmcrypt-dev
mhash--with-mhash=sharedsudo apt install libmhash-dev
mysql--with-mysql=shared,<MySQL安装位置>(注释2)APT 安装或手动编译安装 MySQL 发行版
mysqli--with-mysqli=shared,<mysql_config路径>(注释3)APT 安装或手动编译安装 MySQL 发行版
openssl--with-openssl=sharedsudo apt install libssl-dev libcurl4-openssl-dev
PCRE--with-pcre-regex(注释4)
pdo-mysql--with-pdo-mysql=sharedAPT 安装或手动编译安装 MySQL 发行版
pdo-pgsql--with-pdo-pgsql=shared$1
pgsql--with-pgsql=shared$1
xml(默认包含)sudo apt install libxml2-dev
xsl--with-xslsudo apt install libxslt-dev
zlib--with-zlib=sharedsudo apt install zlib1g-dev
zip--enable-zip

注释:

  1. libgd-dev 一次性包含多种格式的图像库的依赖
  2. MySQL 自 5.5 版本起 libmysqlclient_rlibmysqlclient 库合二为一,5.7 版本起移除了 lib 目录中的符号链接 libmysqlclient_r -> libmysqlclient。但 PHP 5.6 版本依然依赖 libmysqlclient_r 库,需要手动创建链接。参见 Deprecating the mysql_config –libs_r option | MySQL Server Blog
  3. PHP MySQLi 扩展采用 mysql_config 程序获取编译相关的参与。由于注释 2 中阐述的原因,MySQL 团队于 MySQL 5.7 版本开始将 PHP MySQLi 扩展编译配置脚本可能用到的 --libs_r 参数标记为废弃的(deprecated),并将从 MySQL 5.8 版本起删除这一参数。因此届时可能无法采用 MySQL 5.8 原生的客户端库编译 PHP MySQLi 扩展,需要手动编辑编译配置脚本。参见 Deprecating the mysql_config –libs_r option | MySQL Server Blog
  4. PCRE 扩展无法编译为动态链接库

编译与测试

make
make test

安装

sudo make install
./libtool --finish ./libs

安装后配置

sudo cp php.ini-development $PREFIX/etc