php curl 适用于 cli 但不适用于 apache

Posted

技术标签:

【中文标题】php curl 适用于 cli 但不适用于 apache【英文标题】:php curl works from cli but not from apache 【发布时间】:2011-09-09 01:03:53 【问题描述】:

我无论如何都无法让 cURL 在 Apache 内部工作。这实际上也很奇怪,前提是:

    我可以从 CLI 执行我的 php 页面,它可以完美地发布我的请求 当我查看错误日志时,我收到“PHP 致命错误:调用未定义的函数 curl_init()”,就好像根本没有安装扩展一样。同样,如果没有安装扩展,快速的 `phpinfo()` 也会产生。

此外,当我构建 PHP 时,我选择了“--enable-curl”标志。

【问题讨论】:

CLI 和 Apache 有不同的 php.ini,也许你的 Apache php.ini 没有加载 CURL 【参考方案1】:

您可能没有在适当的php.ini 中加载扩展。该文件应包括以下内容:

[PHP_CURL]
extension=php_curl.dll

另外,--enable-curl 不是 PHP 配置选项。 --with-curl=[DIR] 是您想要的。查看cURL installation instructions。

如果配置正确,php_curl.dll 应该在 PHP 的 ext 目录中。

【讨论】:

【参考方案2】:

安装 php5-curl 后我遇到了同样的问题。我重新启动了 apache 并修复了它。

sudo /etc/init.d/apache2 restart for ubuntu 12.04

【讨论】:

【参考方案3】:

我有类似的问题 - 从 cli 工作,从 Apache 2.4 静默失败

我试过了:

1) 将 ssleay32.dll 和 libeay32.dll 从 php 文件夹复制到 apache\bin 文件夹 - 无效

2) 完全从 apache\bin 文件夹中删除 ssleay32.dll 和 libeay32.dll - 工作正常。

每次进行更改以使其正常工作时,您都应该重新启动 apache 服务器。

您还应该从Microsoft 安装 x86 和 x64 版本的 C++ Resistributable Visual Studio。

【讨论】:

以上是关于php curl 适用于 cli 但不适用于 apache的主要内容,如果未能解决你的问题,请参考以下文章

Paypal REST api 调用适用于 cURL,但不适用于 C# 代码

谷歌云获取存储桶 - 适用于 cli 但不适用于 python

wp-cli 适用于 windows cmd,但不适用于 Gitbash

httpd-2.4.18 mod_http2 适用于 curl 和 nghttp 但不适用于浏览器

JBoss WildFly 13 上的 RESTful Web 服务适用于浏览器和 curl,但不适用于单元测试 - 404 错误

为啥这种“嵌套连接”适用于 PDO 而不适用于 MySql cli?