本文记录在比较纯净的centOS 6上安装php7及常用的一些模块的开启参数和相关依赖的yum安装方式
php7默认开启的模块如下:
Core
ctype
date
dom
fileinfo
filter
hash
iconv
json
libxml
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
可以看到,mysql并不在其中,虽说php7已经内置了mysqlnd。但并没有默认开启mysql支持,我们一般都是用pdo_mysql的。
--with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
mbstring也不在其中,就不方便处理多字节文本了~ 中括号表示可选~
--with-mbstring [--with-libmbfl[=DIR]]
处理网络链接的curl
--with-curl[=DIR]
依赖
yum install libcurl-devel
如果要处理图片,gd库也需要。顺便exif也可以带上。
--with-gd[=DIR] --enable-exif
依赖
yum install gd-devel
现在都https时代了,openssl自然也需要带上了
--with-openssl[=DIR]
依赖
yum install openssl-devel
加密相关mcrypt
--with-mcrypt[=DIR]
依赖
yum install libmcrypt-devel
处理html代码的tidy
--with-tidy[=DIR]
依赖
yum install libtidy-devel
处理大数字数学计算的,需要bcmath
--enable-bcmath
需要cli方式多进程管理的pcntl
--enable-pcntl
需要共享内存的shmop
--enable-shmop
需要写命令行交互的可用readline
--enable-readline
依赖
yum install readline-devel
高大上的soap(因为依赖libxml,而libxml是默认开启的,所以如果关掉libxml,这个也不能用了)
--enable-soap
依赖
yum install libxml2-devel
做web服务,必不可少的fpm(这个不算是模块,php -m是看不到的)安装位置:PREFIX/sbin
--enable-fpm
常用的模块就都列举完了~
此时php7的所有模块列表如下:
bcmath
Core
ctype
curl
date
dom
exif
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
SPL
sqlite3
standard
tidy
tokenizer
xml
xmlreader
xmlwriter
为懒人准备的命令行如下:
依赖安装
yum install openssl-devel gd-devel libmcrypt-devel readline-devel libtidy-devel libxml2-devel libcurl-devel
php configure参数
./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-bcmath --with-openssl --enable-mbstring --enable-exif --with-gd --with-tidy --enable-soap --with-readline --enable-shmop --with-mcrypt --enable-pcntl --enable-fpm --with-curl
后记
又在某台机器上编译安装php7,报错说xml2-config找不到,yum install libxml2-devel不成功,提示版本冲突,实际上当前机器已经安装了libxml2-devel了,只不过一些文件“丢失”了。去网上找对应版本的libxml2-devel,例如我的是:libxml2-devel-2.7.6-21.el6_8.1.x86_64.rpm。然后,上传到机器上,rpm -i –force 强制重新安装即可。如果说包签名不对,就忽略签名 –nosignature即可。
《“centOS 6下安装PHP7及相关模块的依赖记录”》 有 1 条评论
如果是高版本php7,mcrypt已经不支持了。则取消–with-mcrypt这个选项(否则configure后会有一个提醒)