php配置——扩展模块如何安装
有时候,我们会有一些需求,这些模块在我们刚刚编译完php之后,发现少了一个模块,没有编译进来,解决办法有两种:
第一种你需要去重新编译,找到你的源码包,重新编译,重新配置,
第二种使用动态的方式把它加载进来,就是你单独地去编译出来一个模块就可以了,类似于apache的动态共享模块。
## 查看PHP加载的模块
# /usr/local/php/bin/php -m
解释说明:
这些模块里有动态的,有静态的;而一些动态的可以在php.ini里去定义;
搜索动态模块在php.ini里 grep '^extension=' /usr/local/php/etc/php.ini
## 查看PHP自带的一些源码包、模块
# cd /usr/local/src/php-5.3.28/ext/
# ls
解释说明:
若里面没有所需要的,可以从网上去下载源码包
## 比如扩展安装curl模块(先查看一下有没有安装此模块)
# /usr/local/php/bin/php -m|grep -i curl
#
## 没有则进入到curl目录里
# cd curl
## 通过phpize工具生成configure进行编译
# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
# ls
acinclude.m4 build config.m4 configure.incurl.dsp ltmain.sh mkinstalldirsphp_curl.h tests
aclocal.m4 config.guessconfig.subconfig.w32 install-sh Makefile.globalmulti.c run-tests.php
autom4te.cacheconfig.h.in configure CREDITS interface.cmissing package.xml streams.c
## 安装源码包三部曲
# ./configure --with-php-config=/usr/local/php/bin/php-config
解释说明:
--with-php-config固定语法
# make
# make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
解释说明:
会把模块的文件放在此目录下
## 查看生成的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可以查看;
如果两个路径一致,那么直接手动加载即可。如果不在同一目录下,手动加载需全路径;
## 在配置文件中手动加载
# vim /usr/local/php/etc/php.ini
extension=curl.so
http://note.youdao.com/yws/res/3693/WEBRESOURCE1f0a1c6b80845889a4393ed9846c7fb2
## 查看是否加载成功
# /usr/local/php/bin/php -m |grep curl
curl
## 重启apache加载这个模块
# /usr/local/apache2/bin/apachectl -t
Syntax OK
# /usr/local/apache2/bin/apachectl graceful
http://note.youdao.com/yws/res/5221/WEBRESOURCEdfe92741e188233cc9d4bac96fe49f5b
###########若我们不小心在php.ini模块名写错了(写成了curl22.so):################
## 检查是否加载了此模块(这肯定是没有的)
# /usr/local/php/bin/php -m|grep curl
#
## 接下来,查看一下错误日志
# tail /usr/local/php/logs/php_errors.log
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]