PHP cURL在CLI中可以工作,但在Apache中无法工作。

3

我无论如何都无法让cURL在Apache中正常工作。这实际上相当奇怪,因为:

  1. 我可以从CLI执行我的PHP页面,并且可以完美地POST我的请求
  2. 当我查看我的错误日志时,我会得到“PHP致命错误:未定义函数curl_init()”,就好像根本没有安装扩展一样。同样,一个快速的`phpinfo()`也会产生类似的结果,就好像扩展没有被安装。

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


4
CLI和Apache有不同的php.ini文件,也许你的Apache php.ini没有加载CURL。 - zzarbi
3个回答

2

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

[PHP_CURL]
extension=php_curl.dll

此外,--enable-curl 不是 PHP 配置选项。你需要使用 --with-curl=[DIR] 这个选项。请参考 cURL 安装说明
当正确配置时,php_curl.dll 应该在 PHP 的 ext 目录中。

0

我安装php5-curl后遇到了同样的问题。我重启了apache,问题得以解决。

对于Ubuntu 12.04,请使用sudo /etc/init.d/apache2 restart命令。


0

我曾经遇到过类似的问题——在命令行中可以正常工作,但在 Apache 2.4 中却默默失败了。

我尝试了以下方法:

1)将 php 文件夹中的 ssleay32.dll 和 libeay32.dll 复制到 apache\bin 文件夹中——没有起作用

2)完全删除 apache\bin 文件夹中的 ssleay32.dll 和 libeay32.dll——这个方法可行。

每次更改后,您都应该重新启动 Apache 服务器以使其生效。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接