29

更新:问题似乎是我的 PHP 安装中某处损坏的 DLL,或者可能是 Win2k 上的 PHP 5.2.9 中的错误。我从 php.net 下载了 PHP 5.2.10 的 Windows(仅限二进制)发行版,并将其解压缩到我的 c:\PHP 目录中。这样做之后,一切正常。

更新2:我撤消了我之前尝试的所有内容(下面的项目符号列表中的所有内容),除了我在我的 php.ini 文件中留下了“ extension=php_curl.dll”未注释。事实证明,这是您在正确安装中应该做的所有事情。


我正在尝试让 CURL 在 Windows 安装的 PHP(版本 5.2.9-2)上工作,但我束手无策。我找到了 PHP CURL 安装页面、引用这个页面的这个 SO问题这个 SO 问题。我已经尝试了所有这些页面中的大多数建议,但仍然出现错误。这是我非常简单的测试页面:

<?php
$ch = curl_init();
?>
<b>Success!</b>

这给了我:

致命错误:在第2行的C:\ApacheRoot\curltest.php中调用未定义函数 curl_init()

在我的 Apache 错误日志中,每次服务器启动时我都会得到这个:

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\PHP\\ext\\php_curl.dll' - The specified procedure could not be found.\r\n in Unknown on line 0

我做了以下事情:

  • 取消注释 php.ini 中的以下行:extension=php_curl.dll
  • 复制ssleay32.dlllibeay32.dll从 C:\PHP 到 C:\WINNT\System32
  • 从curl.haxx.se下载 Win32 的 cURL并将 .zip 文件解压缩到 C:\cURL
  • 添加C:\cURL到我的系统 PATH 环境变量中。
  • 验证:
    • php.ini 包括extension_dir="C:\PHP\ext"
    • 该目录C:\PHP\ext包含php_curl.dll
    • 我系统上唯一的php.ini文件在C:\PHP(即特别是没有C:\WINNT\php.ini
    • Apachehttpd.conf文件包括该行PHPIniDir "C:/PHP/"

我还重新启动了机器(实际上是好几次......)。

4

7 回答 7

9

您不必重新启动计算机,只需重新启动 apache,php 模块就会读取新的 ini。
您是否更改了正确的 php.ini?如有疑问

<?php echo 'php.ini: ', get_cfg_var('cfg_file_path'); ?>

可以告诉你。

apache 的 error.log 中是否有某些内容表明加载 php 和 php_curl.dll 时出现问题?

您是否将 apache 作为 win32 服务启动?如果您确实尝试将其作为控制台应用程序启动。然后错误消息将显示在控制台上。或者将其作为服务启动并查看error.log 文件Windows 事件日志(启动、运行、eventvwr.msc /s)。

编辑:
“找不到指定的过程”
您需要一个与您的php版本兼容的dll并构建。你到底安装了什么,你从哪里得到的?

于 2009-08-27T20:21:58.477 回答
7

试试这个:

  1. 完全停止 WAMP。
  2. 找到您的 WAMP 文件夹:C:\Path\To\WAMP\bin\Apache\ApacheVersion\bin\
  3. 编辑 php.ini 并取消注释 extension=php_curl.dll
  4. 重新启动 WAMP。

这应该有望解决它。

*编辑:做同样的事情@ C:\Path\To\WAMP\bin\php\PHPVersion\

于 2009-08-27T21:17:15.277 回答
1

这对我有用

Soren 从另一个 SO 线程回答 - CURL for WAMP

“某处似乎存在错误。如果您在 Win 7 64 位上遇到此问题,请尝试安装 apache 插件版本 2.2.9 和 php 插件版本 5.3.1 并切换到 WAMP 中的那些,然后激活 CURL 扩展。那行得通为了我。”

于 2012-10-05T23:03:51.687 回答
1

这为我修复了它:

去这里:

http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

下载“php_curl-5.3.13-VC9-x64.zip”

停止 WAMP 服务器运行

提取文件“php_curl.dll”。

在您的本地计算机上,浏览到(或找到您的 WAMP 安装的位置)c:\wamp\bin\php\php5.3.13\ext

将 php_curl.dll 重命名为 php_curl.dll.old(或您选择的任何名称),然后将新文件复制到上述目录中。

重启 WAMP 服务器

现在一切都应该正常了。

于 2013-07-09T12:45:20.417 回答
1

我在使用 php-5.5.26-Win32-VC11-x64 (在 Windows 上)时遇到了同样的问题,我尝试了这里列出的所有内容,但没有成功。最后我通过将PHP 安装目录添加到 windows Path 来让它工作。

于 2015-07-02T07:59:16.427 回答
1

使用 Windows Server Core 2012 x64 cURL 上的 PHP 5.6.9 无法正常工作,尽管在我的 php.ini 中取消注释 php_curl.dll 扩展并重新启动 Apache 2.4 服务,但未显示在 phpinfo 中。在我的 $evn:path 中添加了 php 路径和 php\ext 路径。没有喜悦。

修复:我不需要下载任何其他 php_curl.dll 文件,也找不到适用于 PHP 5.6 的文件。最后的工作是将这三个文件复制到 Apache24\bin 文件夹中,然后重新启动 Apache:

libeay32.dll

libssh2.dll

ssleay32.dll 不需要将这些复制到 System 或 System32。

于 2016-01-02T20:46:25.000 回答
0

如果在您从两个 php.ini 文件(人们已经在谈论并且位于 apache 文件夹和 php 文件夹中)取消注释模块之后问题仍然存在,甚至在您检查是否获得了 php_curl.dll ** 之后

C:\WAMP\bin\php\php5.3.13\ext

您应该尝试将 WAMPSERVER 随附的原始 DLL 替换为来自本网站的一个:

http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

我的问题就在那里!希望能帮助到你。

于 2013-12-10T22:16:25.860 回答