1

我完全不熟悉设置 Apache/PHP Web 服务器,但我必须这样做,因为我的 IT 人员不会。我已经查看了我可以在网上找到的所有内容,但我无法在 windows apache 上的 PHP 中加载 cURL。我安装了 Apache 2.2,它可以工作。我安装了 PHP,它可以工作,我知道这是因为我的 php 脚本检查以确保加载 cURL 扩展,并且我的 php 回显返回到浏览器,我的代码如下所示:

  if (!extension_loaded("curl")) {
     header('Status: 500', true, 500);
     echo 'cURL extension for PHP is not loaded! <br/> Add the following lines to your php.ini file: <br/> extension_dir = &quot;&lt;your-php-install-location&gt;/ext&quot; <br/> extension = php_curl.dll';
     return;
  }

我做了以下事情:

  • 我没有注释extension_dir="c:\php\ext\"(并尝试了该路径的多种变体,使用正斜杠和反斜杠等,以及./ext/方法)。
  • 我确保我extension=php_curl.dllphp.ini.
  • 我已确保我的 apache 用户对 PHP 文件夹和所有子文件夹/文件具有读取和执行权限
  • 我已经确定我C:\PHP的路径环境变量中有。
  • 我在这里尝试了以下建议:Could not load php_curl和这里:PHP cURL is not loaded on modifying php.ini以及 StackOverflow 之外的许多其他内容。

没有任何效果。我在 Windows Server 2003 机器上运行。我在 Apache 日志中没有收到错误消息。我被困住了。请帮忙!谢谢。

添加请求的 Apache 日志信息:

[Tue Aug 14 14:38:22 2012] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Tue Aug 14 14:38:23 2012] [notice] Apache/2.2.22 (Win32) PHP/5.2.17 mod_ssl/2.2.22 OpenSSL/0.9.8t configured -- resuming normal operations
[Tue Aug 14 14:38:23 2012] [notice] Server built: Jan 28 2012 11:16:39
[Tue Aug 14 14:38:23 2012] [notice] Parent: Created child process 5616
[Tue Aug 14 14:38:24 2012] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Tue Aug 14 14:38:25 2012] [notice] Child 5616: Child process is running
[Tue Aug 14 14:38:25 2012] [notice] Child 5616: Acquired the start mutex.
[Tue Aug 14 14:38:25 2012] [notice] Child 5616: Starting 64 worker threads.
[Tue Aug 14 14:38:25 2012] [notice] Child 5616: Starting thread to listen on port 8080.
4

2 回答 2

5

如果您在 Windows 操作系统中安装 PHP、Apache,那么以下步骤可以帮助您php_curl.dll顺利运行。

  1. 找到php.ini(可能在C:\Windows)文件的位置并打开它。然后取消注释(从 中删除分号(;);extension=php_curl.dll)并保存文件。
  2. 确保它php_curl.dll存在于您的 PHP 扩展目录 ( C:\php\ext) 中。此扩展路径定义在您的 php.ini 文件中。
  3. 复制php4ts.dll(如果您使用 PHP4)或php5ts.dll(如果您使用 PHP5),libeay32.dll并复制ssleay32.dllC:\WINNT(Windows 2000) 或C:\Windows(Windows 2003) 目录。如果在您的计算机php4ts.dllphp5ts.dll没有找到,请在谷歌中搜索并下载。其他两个 dll 可以在你的 PHP 目录的 dlls 目录中找到(可能在C:\php\ext
  4. 重新启动 Apache 服务。

再次检查 cURL 是否启用。如果没有,请重新启动计算机。
现在再次运行脚本,看看你的 php_curl 现在运行顺利。
如果没有,则将上面的 3 个 dll 文件(在第 3 项中描述)复制到您的 PHP 根目录(可能是C:\php)以及 Windows system32 目录(C:\Windows\system32)中。

现在顺利运行您的 php cURL 脚本。祝你今天过得愉快。

于 2013-09-24T16:03:42.720 回答
1

对于 Windows 7 64 位,我必须将 php_curl.dll、libeay32.dll 和 ssleay32.dll 复制到 \Windows\SysWOW64。

于 2013-10-18T09:30:10.307 回答