在 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=shared | sudo apt install libbz2-dev |
calendar | --enable-calendar | |
curl | --with-curl=shared | |
exif | --enable-exif | |
gd | --with-gd=shared | sudo apt install libgd-dev(注释1) |
gettext | --with-gettext=shared | |
intl | --enable-intl | |
mbstring | --enable-mbstring | |
mcrypt | --with-mcrypt=shared | sudo apt install libmcrypt-dev |
mhash | --with-mhash=shared | sudo apt install libmhash-dev |
mysql | --with-mysql=shared,<MySQL安装位置>(注释2) | APT 安装或手动编译安装 MySQL 发行版 |
mysqli | --with-mysqli=shared,<mysql_config路径>(注释3) | APT 安装或手动编译安装 MySQL 发行版 |
openssl | --with-openssl=shared | sudo apt install libssl-dev libcurl4-openssl-dev |
PCRE | --with-pcre-regex(注释4) | |
pdo-mysql | --with-pdo-mysql=shared | APT 安装或手动编译安装 MySQL 发行版 |
pdo-pgsql | --with-pdo-pgsql=shared | $1 |
pgsql | --with-pgsql=shared | $1 |
xml | (默认包含) | sudo apt install libxml2-dev |
xsl | --with-xsl | sudo apt install libxslt-dev |
zlib | --with-zlib=shared | sudo apt install zlib1g-dev |
zip | --enable-zip |
注释:
libgd-dev
一次性包含多种格式的图像库的依赖- MySQL 自 5.5 版本起
libmysqlclient_r
与libmysqlclient
库合二为一,5.7 版本起移除了lib
目录中的符号链接libmysqlclient_r -> libmysqlclient
。但 PHP 5.6 版本依然依赖libmysqlclient_r
库,需要手动创建链接。参见 Deprecating the mysql_config –libs_r option | MySQL Server Blog。 - 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。 - PCRE 扩展无法编译为动态链接 库
编译与测试
make
make test
安装
sudo make install
./libtool --finish ./libs
安装后配置
sudo cp php.ini-development $PREFIX/etc