这是我的服务器配置:
CentOS 6.5版(最终版)
PHP 5.5.7
pecl_http 2.0.4稳定
服务器版本:Apache/2.2.15(Unix)
我已经准备好了所有的东西,除非我试图加载pecl_http
模块时它给了我以下警告并且它不会加载:
PHP Warning: PHP Startup: Unable to load dynamic library '/path/to/php/modules/http.so' - /path/to/php/modules/http.so: undefined symbol: php_persistent_handle_abandon in Unknown on line 0
我试着到处寻找但没有运气.安装似乎很好,但我不知道它有什么问题.
从版本2开始,PECL HTTP需要在http之前加载模块raphf和propro.所以编辑你的php.ini或php.d/pecl_http.ini或者你加载模块,所以它看起来像:
extension=raphf.so extension=propro.so extension=http.so
资料来源:http: //www.php.net/manual/en/http.install.php#113769
我带着同样的问题来到这里 - 我无法让2.0.4工作 - 希望能帮助你或其他人在这里绊倒,我邀请你在这里查看我在serverfault上的答案.
为方便起见,我还复制了以下内容:
我没有设置问题 - 至少我不知道.我正在运行nginx + php5-fpm.我的php.ini文件已正确配置,我所有其他扩展都正常工作 - 使用phpinfo()或php --ini进行测试.
我对pecl_http(HttpRequest)的问题是扩展的版本(2.0.4).通过在命令行中运行来检查您的版本
pecl list
我无法让pecl_http-2.0.4工作,但我能够运行
pecl uninstall pecl_http
然后
pecl install pecl_http-1.7.6
.确保您也安装了libcurl,否则您可能会遇到安装失败.
重新启动php5-fpm和我的网络服务器(nginx)后,一切都完美无缺!
额外帮助:
在安装之前 - 并且安装了pear - 您可能希望运行这两个命令,假设您在fpm中使用php.ini - 或者您可以根据您的配置编写路径:
pear config-set php_ini /etc/php5/fpm/php.ini pecl config-set php_ini /etc/php5/fpm/php.ini
这使得pecl知道你在web服务器上使用哪个php.ini文件,并将extension = http.so添加到正确的位置.这对我有所帮助,也许它对你也有帮助!