解决php扩展安装不生效问题


Posted in PHP onOctober 25, 2019

php安装扩展模块后,重启不生效的原因及解决办法

在lnmp运维环境中,我们经常会碰到有些php依赖的扩展模块没有安装,这就需要后续添加这些扩展模块。在扩展被安装配置后,往往会发现php-fpm服务重启后,这些扩展并没有真正加载进去!下面就以一个示例进行说明:

示例环境:

php安装包存放路径:/data/software/php-5.6.10.tar.gz

php安装目录:/data/php

[root@zabbix ~]# ll /data/software/php-5.6.10.tar.gz
-rw-r--r-- 1 root root 18306403 6月 11 2015 /data/software/php-5.6.10.tar.gz
[root@zabbix ~]# ll -d /data/software/php-5.6.10
drwxr-xr-x 17 www www 4096 10月 13 19:38 /data/software/php-5.6.10
[root@zabbix ~]# ls /data/php/
bin etc include lib php sbin var

使用php -m命令,发现少了bcmath和gettest扩展

[root@zabbix ~]# vim /etc/profile
export PATH=$PATH:/data/php/bin
[root@zabbix ~]# source /etc/profile
[root@zabbix ~]# php -m|grep bcmath
[root@zabbix ~]# php -m|grep gettext
[root@zabbix ~]#

现在开始安装bcmatn和gettest扩展

安装bcmath扩展

[root@zabbix ~]# cd /data/software/php-5.6.10/ext/bcmath/
[root@zabbix bcmath]# /data/php/bin/phpize
[root@zabbix bcmath]# ./configure --with-php-config=/data/php/bin/php-config
[root@zabbix bcmath]# make && make
.......

编译成功之后会告诉你一个目录

Installing shared extensions:   /data/php/lib/php/extensions/no-debug-non-zts-20131226

安装gettext扩展

[root@zabbix ~]# cd /data/software/php-5.6.10/ext/gettext/
[root@zabbix gettext]# /data/php/bin/phpize
[root@zabbix gettext]# ./configure --with-php-config=/data/php/bin/php-config
[root@zabbix gettext]# make && make
.......

编译成功之后会告诉你一个目录

Installing shared extensions:   /data/php/lib/php/extensions/no-debug-non-zts-20131226
[root@zabbix ~]# ll /data/php/lib/php/extensions/no-debug-non-zts-20131226

总用量 2336

-rwxr-xr-x 1 root root 380152 10月 13 23:03 bcmath.so
-rwxr-xr-x 1 root root  50376 10月 13 23:31 gettext.so

配置php.ini

[root@zabbix ~]# vim /data/php/etc/php.ini
.........
extension_dir = "/data/php/lib/php/extensions/no-debug-non-zts-20131226"
extension=bcmath.so
extension=gettext.so

重启php-fpm

[root@zabbix ~]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done

然后再次查看bcmath和gettext扩展安装后,是否生效?

[root@zabbix ~]# php -m|grep bcmath
[root@zabbix ~]# php -m|grep gettext
[root@zabbix ~]#

发现并没有生效! why!?

这是因为php-fpm启动时,没指定php.ini,所以一直都没生效!

[root@zabbix etc]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
[root@zabbix etc]# ps -ef|grep php-fpm
root   19529   1 0 23:37 ?    00:00:00 php-fpm: master process (/data/php/etc/php-fpm.conf)
www   19530 19529 0 23:37 ?    00:00:00 php-fpm: pool www
www   19531 19529 0 23:37 ?    00:00:00 php-fpm: pool www
root   19533 17173 0 23:37 pts/4  00:00:00 grep --color=auto php-fpm

解决办法:

1)指定php.ini文件来启动php-fpm服务

[root@zabbix etc]# /etc/init.d/php-fpm stop
Gracefully shutting down php-fpm . done
[root@zabbix etc]# ps -ef|grep php-fpm
root   19541 17173 0 23:38 pts/4  00:00:00 grep --color=auto php-fpm
[root@zabbix etc]# /data/php/sbin/php-fpm -y /data/php/etc/php-fpm.conf -c /data/php/etc/php.ini
[root@zabbix etc]# ps -ef|grep php-fpm
root   19543   1 0 23:38 ?    00:00:00 php-fpm: master process (/data/php/etc/php-fpm.conf)
www   19544 19543 0 23:38 ?    00:00:00 php-fpm: pool www
www   19545 19543 0 23:38 ?    00:00:00 php-fpm: pool www
root   19547 17173 0 23:39 pts/4  00:00:00 grep --color=auto php-fpm

2)要是上面启动后,安装的php扩展还是没有生效!那就可能是php.ini文件没有放对路径(这里我是直接放大php的etc目录下的)

[root@zabbix ~]# ll /data/php/etc/php.ini
-rw-r--r-- 1 root root 73243 10月 13 23:32 /data/php/etc/php.ini
[root@zabbix ~]# cp /data/php/etc/php.ini /data/php/lib/
[root@zabbix ~]# ll /data/php/lib/php.ini
-rw-r--r-- 1 root root 73243 10月 13 23:35 /data/php/lib/php.ini

然后再接着重启php-fpm服务即可!

[root@zabbix ~]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
[root@zabbix ~]# ps -ef|grep php
root   19564   1 0 23:43 ?    00:00:00 php-fpm: master process (/data/php/etc/php-fpm.conf)
www   19565 19564 0 23:43 ?    00:00:00 php-fpm: pool www
www   19566 19564 0 23:43 ?    00:00:00 php-fpm: pool www
root   19568 17173 0 23:43 pts/4  00:00:00 grep --color=auto php
[root@zabbix ~]#

最后再次查看bcmath和gettext扩展有没有生效?

[root@zabbix ~]# php -m|grep bcmath
bcmath
[root@zabbix ~]# php -m|grep gettext
gettext
[root@zabbix ~]#

总结

以上所述是小编给大家介绍的解决php扩展安装不生效问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
在PHP中执行系统外部命令
Oct 09 PHP
用PHP+MySQL搭建聊天室功能实例代码
Aug 20 PHP
PHP 观察者模式的实现代码
May 10 PHP
PHP中ini_set和ini_get函数的用法小结
Feb 18 PHP
ThinkPHP应用模式扩展详解
Jul 16 PHP
php+mysqli使用预处理技术进行数据库查询的方法
Jan 28 PHP
php获取YouTube视频信息的方法
Feb 11 PHP
PHP查询快递信息的方法
Mar 07 PHP
SESSION存放在数据库用法实例
Aug 08 PHP
PHP中的Trait 特性及作用
Apr 03 PHP
php文件系统处理方法小结
May 23 PHP
laravel 判断查询数据库返回值的例子
Oct 11 PHP
Laravel实现通过blade模板引擎渲染视图
Oct 25 #PHP
laravel 解决Validator使用中出现的问题
Oct 25 #PHP
laravel接管Dingo-api和默认的错误处理方式
Oct 25 #PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
Oct 25 #PHP
PHP 图片合成、仿微信群头像的方法示例
Oct 25 #PHP
Laravel validate error处理,ajax,json示例
Oct 25 #PHP
laravel 错误处理,接口错误返回json代码
Oct 25 #PHP
You might like
利用php+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
一个PHP并发访问实例代码
2012/09/06 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
动态样式类封装JS代码
2009/09/02 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
jquery插件开发方法(初学者)
2012/02/03 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
AngularJS 防止页面闪烁的方法
2017/03/09 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
通过jQuery学习js类型判断的技巧
2019/05/27 jQuery
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
Python实现提取文章摘要的方法
2015/04/21 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
校车安全管理责任书
2015/05/11 职场文书
就业意向书范本
2015/05/11 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技