设为首页 收藏本站
查看: 879|回复: 0

[经验分享] php配置——扩展模块如何安装

[复制链接]

尚未签到

发表于 2018-12-14 12:36:40 | 显示全部楼层 |阅读模式
  有时候,我们会有一些需求,这些模块在我们刚刚编译完php之后,发现少了一个模块,没有编译进来,
  解决办法有两种:
  第一种你需要去重新编译,找到你的源码包,重新编译,重新配置,
  第二种使用动态的方式把它加载进来,就是你单独地去编译出来一个模块就可以了,类似于apache的动态共享模块。
  ## 查看PHP加载的模块
  [root@wy ~]# /usr/local/php/bin/php -m
  解释说明:
  这些模块里有动态的,有静态的;而一些动态的可以在php.ini里去定义;
  搜索动态模块在php.ini里 grep '^extension=' /usr/local/php/etc/php.ini
  ## 查看PHP自带的一些源码包、模块
  [root@wy ~]# cd /usr/local/src/php-5.3.28/ext/
  [root@wy ext]# ls
  解释说明:
  若里面没有所需要的,可以从网上去下载源码包
  ## 比如扩展安装curl模块(先查看一下有没有安装此模块)
  [root@wy ext]# /usr/local/php/bin/php -m|grep -i curl
  [root@wy ext]#
  ## 没有则进入到curl目录里
  [root@wy ext]# cd curl
  ## 通过phpize工具生成configure进行编译
  [root@wy curl]# /usr/local/php/bin/phpize
  Configuring for:
  PHP Api Version:         20090626
  Zend Module Api No:      20090626
  Zend Extension Api No:   220090626
  [root@wy curl]# ls
  acinclude.m4    build         config.m4   configure.in  curl.dsp     ltmain.sh        mkinstalldirs  php_curl.h     tests
  aclocal.m4      config.guess  config.sub  config.w32    install-sh   Makefile.global  multi.c        run-tests.php
  autom4te.cache  config.h.in   configure   CREDITS       interface.c  missing          package.xml    streams.c
  ## 安装源码包三部曲
  [root@wy curl]# ./configure --with-php-config=/usr/local/php/bin/php-config
  解释说明:
  --with-php-config固定语法
  [root@wy curl]# make
  [root@wy curl]# make install
  Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
  解释说明:
  会把模块的文件放在此目录下
  ## 查看生成的curl模块
  [root@wy curl]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
  curl.so
  解释说明:
  这个路径是extension_dir中配置的;extension_dir它是存放扩展模块的;
  通过/usr/local/php/bin/php -i |grep -i extension_dir可以查看;
  如果两个路径一致,那么直接手动加载即可。如果不在同一目录下,手动加载需全路径;
  ## 在配置文件中手动加载
  [root@wy curl]# vim /usr/local/php/etc/php.ini
  extension=curl.so

  ## 查看是否加载成功
  [root@wy curl]# /usr/local/php/bin/php -m |grep curl
  curl
  ## 重启apache加载这个模块
  [root@wy curl]# /usr/local/apache2/bin/apachectl -t
  Syntax OK
  [root@wy curl]# /usr/local/apache2/bin/apachectl graceful

  ###########若我们不小心在php.ini模块名写错了(写成了curl22.so):################
  ## 检查是否加载了此模块(这肯定是没有的)
  [root@wy curl]# /usr/local/php/bin/php -m|grep curl
  [root@wy curl]#
  ## 接下来,查看一下错误日志
  [root@wy curl]# tail /usr/local/php/logs/php_errors.log
  [06-Nov-2016 23:45:16 Asia/Chongqing] PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/curl22.so' - /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/curl22.so: cannot open shared object file: No such file or directory in Unknown on line 0
  ###############################################################################
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-651357-1-1.html 上篇帖子: php配置——php.ini配置文件详解 下篇帖子: PHP设计模式之装饰者模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表