首先说下环境,centos的操作系统,php5.3.8,apache 2.2.21,运行了一个discuz项目,本来已经运行正常了,现在想用web service相关,所以想加载soap模块,根据网上的做法,将php重新编译,生成soap.so,再将php.ini相关修改,然后在命令行中输入php -m如下图 php -i 如下图 在命令行中输入 php -r "new SoapClient(里面的东西就不写了);"; 运行也没有报错,但是在php的页面中写<?php phpinfo() ?>下输出的页面中就是没有加载soap模块 其Configure Command './configure' '--prefix=/usr/local/php5' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-freetype=/usr/local/freetype' '--enable-trace-avrs' '--with-mysql=/usr/local/mysql' '--with-zlib' '--with-libxml=/usr/local/libxml2' '--enable-shared' '--with-curl=/usr/local/curl' '--with-expat=/usr/local/expat' '--with-gd' '--with-jpeg-dir=/usr/local/jpeg6' '--with-png' '--enable-mbstring=all' '--enable-mbrege' '--enable-so'是这样的,后面也没有soap的选项,在<?php $s = new SoapClient(''); ?>语句时,也显示出class soapclient not found...
csdn上图真疼
上面两张图的意思是命令行中 php -m 显示已经加载soap模块了 php -i中也显示了soap client已经enable
但是在php页面中就各种问题了
我在php -i中看过各个路径与我想联系的路径是一致的
===================================================================
你命令行的php和apache下运行的php很有可额载入的不同的php.ini文件,你命令行下php --ini看下是不是和网页里看到的php.ini路径是一样的。
Soap Server => enabledDirective => Local Value => Master Value
soap.wsdl_cache => 1 => 1
soap.wsdl_cache_dir => /tmp => /tmp
soap.wsdl_cache_enabled => 1 => 1
soap.wsdl_cache_limit => 5 => 5
soap.wsdl_cache_ttl => 86400 => 86400
在<?php phpinfo() ?>通过页面显示了就是
Configuration File (php.ini) Path /usr/local/php5/lib
看来在apache中加载的不是我想要的模块