解决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 相关文章推荐
网络资源
Oct 09 PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 PHP
限制ckeditor上传图片文件大小的方法
Nov 15 PHP
PHP中使用Imagick操作PSD文件实例
Jan 26 PHP
ThinkPHP 3.2 版本升级了哪些内容
Mar 05 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
非常全面的php日期时间运算汇总
Nov 04 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
PHP读取目录树的实现方法分析
Mar 22 PHP
PHP中的Iterator迭代对象属性详解
Apr 12 PHP
laravel-admin select框默认选中的方法
Oct 03 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 miniBB中文乱码问题解决方法
2008/11/25 PHP
php2html php生成静态页函数
2008/12/08 PHP
php设计模式之观察者模式的应用详解
2013/05/21 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
php实现的SESSION类
2014/12/02 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
js DOM 元素ID就是全局变量
2012/09/20 Javascript
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
django 删除数据库表后重新同步的方法
2018/05/27 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
应用服务器有那些
2012/01/19 面试题
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
《夏夜多美》教学反思
2014/02/17 职场文书
质量承诺书范文
2014/03/27 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js