PHP7安装扩展
使用环境:Centos7+PHP7.0.9源码编译安装的php可以通过安装包目录的扩展包(ext)进行组件安装,需要使用到phpize这个执行文件:
https://s5.运维网.com/wyfs02/M02/8F/9B/wKioL1jma8yRhQhIAAA9Rwv06Rw175.png
把phpize加到系统全局中,方便使用:
# ln -s /usr/local/php/bin/phpize /bin/
https://s5.运维网.com/wyfs02/M02/8F/9C/wKiom1jmbt-yGmzjAAAVar5IOWg498.png
查看php当前支持的扩展:
# php -m
https://s1.运维网.com/wyfs02/M02/8F/9B/wKioL1jmb4yz6lPxAAA1xR0pXk8019.png
可以方便看到挺多常用扩展(如:mbstring、mcrypt、pdo_mysql、openssl等等)在源码安装的时候并没装上。
我安装openssl为例,进入php源码安装包ext目录:
https://s3.运维网.com/wyfs02/M00/8F/9C/wKiom1jmcOKSDToaAABNbx4DRRg187.png
进入openssl执行phpize进行编译,报了个找不到文件的错误:
https://s4.运维网.com/wyfs02/M00/8F/9C/wKiom1jmct-B6_ncAAAbIejyppY269.png
没关系,通过拷贝config0.m4,创建一个config.m4,再此执行编译:
https://s5.运维网.com/wyfs02/M00/8F/9B/wKioL1jmc2Ky2Wc5AABHb0-Op9g887.png
又出问题了,没有autoconf这个工具:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
因为autoconf 依赖于m4,所以会自动下载解决这个依赖关系,通过yum把它下载下来:
# yum -y install autoconf
重新执行phpize,没问题了。
https://s3.运维网.com/wyfs02/M01/8F/9B/wKioL1jmeAjSdTXsAAASmTIHRIk481.png
https://s1.运维网.com/wyfs02/M02/8F/9C/wKiom1jmeCiTAxdqAAAsQD03bh4266.png
执行编译:
# ./configure --with-php-config=/usr/local/php/bin/php-config
执行安装:
# make && make install
扩展存放路径:
https://s4.运维网.com/wyfs02/M02/8F/9B/wKioL1jmeVqQe_-zAAAX1Xf4nv8218.png
编辑php.ini开启openssl:
通过命令查找php.ini配置,可以看出系统没有读取到php的位置,识别路径为/usr/local/php/lib:
# php --ini
https://s5.运维网.com/wyfs02/M02/8F/9C/wKiom1jmeszhfEoXAAAXO9XoUJk285.png
把php安装包中开发或者产品版配置复制一个到指定目录
https://s2.运维网.com/wyfs02/M01/8F/9B/wKioL1jmfYizRtH-AADqAob-JeI882.png
编辑php.ini,开启openssl:
https://s4.运维网.com/wyfs02/M00/8F/9B/wKioL1jmfoXBjThXAACMwheUMZU389.png
再此执行php -m查看扩展支持,弹出2个警告,php_openssl.dll找不找:
https://s4.运维网.com/wyfs02/M02/8F/9C/wKiom1jmfwXSKl2DAAB7wSzlEtw872.png
去扩展目录查看个纠结,发现文件扩展名称跟配置文件名称不匹配:
https://s1.运维网.com/wyfs02/M02/8F/9B/wKioL1jmgGDxHR96AAAXKsYcVyM377.png
重新编辑php.ini,修改openssl模块名称:
https://s3.运维网.com/wyfs02/M01/8F/9C/wKiom1jmgGCge6zmAACFmm1QFyI776.png
重新查看看php扩展支持:
https://s1.运维网.com/wyfs02/M00/8F/9B/wKioL1jmgPbwvdZRAAAs6M8JhUI475.png
总结:autoconf这个工具是依赖工具是关键,php.ini配置要放对位置,检查配置扩展名称是否跟安装的一致。php命令很实用,可以结合使用排错。
页:
[1]