如何让 CURL 在 Windows 上使用 PHP?(万普)

2022-08-30 15:21:02

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

Update2:我撤消了我之前尝试过的所有内容(下面项目符号列表中的所有内容),除了我在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
  • 复制并从 C:\PHP 复制到 C:\WINNT\System32ssleay32.dlllibeay32.dll
  • curl.haxx.se 下载了 Win32 的 cURL,并将.zip文件解压缩到 C:\cURL
  • 已添加到我的系统 PATH 环境变量。C:\cURL
  • 已验证:
    • php.ini 包括extension_dir="C:\PHP\ext"
    • 该目录包含C:\PHP\extphp_curl.dll
    • 我的系统上唯一的文件在(即没有php.iniC:\PHPC:\WINNT\php.ini)
    • Apache 文件包含以下行httpd.confPHPIniDir "C:/PHP/"

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


答案 1

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

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

可以告诉你。

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

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

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


答案 2

试试这个:

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

这应该有望解决它。

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


推荐