pecl_http 加载失败

2022-01-13 00:00:00 centos php pecl

这是我的服务器配置:

  • CentOS 6.5 版(最终版)
  • PHP 5.5.7
  • pecl_http 2.0.4 稳定版
  • 服务器版本:Apache/2.2.15 (Unix)

除了我尝试加载 pecl_http 模块时,我已经启动并运行了所有东西,它给了我以下警告并且它不会加载:

I have everything up and running except when I tried to load the pecl_http module it gives me the following warning and it won't load:

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

我试图到处寻找,但没有运气.安装似乎很好,但我不知道它有什么问题.

I tried to look everywhere but without a luck. The install seems fine but I don't know what's wrong with it.

推荐答案

我带着同样的问题来到这里 - 我无法让 2.0.4 工作 - 希望帮助你或其他在这里绊倒的人,我邀请你在 serverfault here 上查看我的答案.

I came here with the same problem - I couldn't get 2.0.4 to work - in hopes of helping you or others that stumble here, I invite you to check out my answer on serverfault here.

为方便起见,我也在下面复制了它:

For your convenience I've also copied it below:

我没有设置问题 - 至少据我所知没有.我正在运行 nginx + php5-fpm.我的 php.ini 文件配置正确,所有其他扩展都正常工作 - 使用 phpinfo() 或 php --ini 测试它.

I didn't have a setup problem - at least not to my knowledge. I am running nginx + php5-fpm. My php.ini file was correctly configured and all my other extensions were working properly - test it with phpinfo() or php --ini.

pecl_http (HttpRequest) 的问题是扩展的版本 (2.0.4).通过在命令行中运行来检查您的版本

My problem with pecl_http (HttpRequest) was the extension's version (2.0.4). Check your version by running in the command line

pecl list

我无法让 pecl_http-2.0.4 工作,但我能够运行

I was unable to get pecl_http-2.0.4 to work, but I was able to run

pecl 卸载 pecl_http

然后

pecl 安装 pecl_http-1.7.6.确保您也安装了 libcurl,否则您可能会遇到安装失败.

pecl install pecl_http-1.7.6. Make sure you have libcurl installed as well or you might experience install failures.

重启 php5-fpm 和我的网络服务器 (nginx) 后一切正常!

After restarting php5-fpm and my webserver (nginx) everything was working prefectly!

额外帮助:

在安装之前 - 并且 pear 已安装 - 您可能想要运行这两个命令,假设您在 fpm 中使用 php.ini - 或者您可以根据您的配置编写路径:

Before you install - and pear is installed - you may want to run these two commands assuming you are using the php.ini in fpm - or you can write the path according to your configuration:

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.这对我有帮助,所以也许它也会对你有所帮助!

This makes it so that pecl knows which php.ini file you are using with your web-server and will add the extension=http.so in the correct spot. This helped me so maybe it'll help you too!

相关文章