59

我已按照此处的所有说明进行操作:http ://www.tonyspencer.com/2003/10/22/curl-with-php-and-apache-on-windows/

安装和配置 apache 获取 PHP5 包并获取 CURL 包。

我运行 apache 并运行 PHP 脚本。没问题。但是当我用 curl 运行 php 脚本时,它失败了。

它返回: **Call to undefined function curl_version() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\testing.php on line 5**

其中第 5 行被调用curl_init()

我输出 php -i 以查看是否调用了正确的扩展路径。设置正确:

extension_dir => C:\PHP\ext => C:\PHP\ext
cURL support => enabled
cURL Information => libcurl/7.16.0 OpenSSL/0.9.8g zlib/1.2.3

我什至尝试运行curl_version() ,但仍然出现同样的错误。
看起来 PHP 找不到 CURL 扩展,但php.ini(以及 php -i)显示它已设置。

任何的想法?:)

P.S>  System I m running on:
Windows XP
Apache 2.2
PHP 5.2.6
CURL Win32 Generic Binaries: Win32 2000/XP  metalink    7.19.0  binary  SSL enabled     Daniel Stenberg     249 KB

我没有得到这个:

Win32 2000/XP   7.19.0  libcurl     SSL enabled     Günter Knauf    1.55 MB
Should I get this one instead?

我需要使用 CURL 的原因是它是我项目的要求。所以,我只能坚持下去。XAMPP...它在 Windows 中是如何工作的?有什么网站可以推荐吗?谢谢。

我已经尝试了很多关于安装 cURL 并检查所有内容的方法,但我仍然在围绕这个问题转圈,不知道发生了什么。

Apache 服务器使用正确的 PHP.ini。并且 PHP.ini 具有正确的 extension_dir 和 extension=php_curl.dll 我不知道为什么它不起作用。即使我按照每一步进行设置。:(

4

13 回答 13

50

使用以下步骤安装 curl:

  1. 在浏览器中打开https://curl.haxx.se/dlwiz?type=bin 。

  2. 在下拉框中选择您的操作系统:Windows /Win32 或 Win 64。单击选择!

  3. 对于 Win 32,选择是在 Windows 命令提示符(通用)还是在 Cygwin 终端(cygwin)中使用 curl。对于 Win 64,选择是在 Windows 命令提示符(通用)还是 MinGW (MinGW64) 中使用 curl。点击选择!

  4. 如果需要,请选择您的 Windows 操作系统。结束。

  5. 单击“下载”以获取启用或禁用 SSL 的版本

  6. 打开下载的 zip 文件。将文件解压缩到易于查找的位置,例如 C:\Program Files。

测试卷曲

  1. 打开 Windows 命令提示符终端。(从“开始”菜单中,单击“运行”,然后键入 cmd。)

  2. 设置路径以包含放置 curl.exe 的目录。例如,如果您将其放在 C:\Program Files\curl 中,那么您将键入以下命令:set path=%path%;"c:\Program Files\curl"

注意:您也可以直接将 curl.exe 文件复制到路径中的任何现有路径

  1. 键入卷曲。您应该会看到以下消息: curl: try 'curl –help' or 'curl –message' for more information 这意味着 curl 已安装并且路径正确。
于 2013-06-12T20:00:14.247 回答
22

您可能弄错了您需要编辑的 PHP.ini。首先,添加一个 PHPinfo(); 到 info.php,然后从浏览器运行它。

现在写下您在变量列表中看到的 PHP ini 目录路径!您可能会注意到它与您的 PHP-CLI ini 文件不同。

启用扩展

你完成了 :-)

于 2008-10-08T06:32:40.297 回答
15

我正在使用 XAMPP,其中有几个 php.ini 文件。

您可以在 php.ini 文件中找到该行: ;extension=php_curl.dll

请删除;此行的开头。您可能需要重新启动 apache 服务器。

于 2008-10-08T03:24:34.590 回答
9

我也有这个问题。在正确完成所有这些步骤和一些固定的误解之后(没有 extensions_dir 而是 extension_dir,没有 session.save_path 而是 session.save_path),没有任何效果。

最后我在 php.net 上找到了这个注释:

注意:Win32 用户注意:为了在 Windows 环境中启用此模块,libeay32.dll 和 ssleay32.dll 必须存在于您的 PATH 中。您不需要 cURL 站点中的 libcurl.dll。

所以我将 ssleay32.dll、libeay32.dll 和 php_curl.dll 从 /PHP 复制到 Windows/system32 并替换了已经存在的文件(我注意到有旧版本的 ssleay32.dll 和 libeay32.dll)。之后我在 php_info(); 中找到了 CURL 部分。最后一切正常。

祝你好运!

于 2012-05-01T15:59:30.297 回答
5

其他遇到此问题的人的另一个答案

当您取消注释扩展线时,将其更改为:

extension=C:/php/ext/php_curl.dll

或扩展文件夹的位置,对我来说,在我这样做之前它不起作用

于 2015-05-06T10:04:18.757 回答
2

我最近在 PHP5 for Windows Vista 上安装了 Curl。我最初安装 PHP5 时没有启用 CURL 库,因此 phpinfo() 或 php.ini 中没有显示任何关于 Curl 的内容。

我通过重新运行 PHP5 安装程序(对我来说是 php-5.2.8-win32-installer.msi)并选择“更改”来安装 CURL。然后,我添加了 CURL 组件。重新启动 Apache,CURL 应该可以工作。CURL 将显示在 phpinfo() 中。此外,这是一个示例脚本,您可以运行它来验证它是否有效。它显示来自 Google 的 RSS 提要:

    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', '1');
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,
    'http://news.google.com/news?hl=en&topic=t&output=rss');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $contents = curl_exec ($ch);
    echo $contents;
    curl_close ($ch);
    ?>
于 2009-02-08T16:59:32.607 回答
2

注意:Win32 用户注意事项 为了在 Windows 环境中启用此模块 (cURL),libeay32.dll 和 ssleay32.dll 必须存在于您的 PATH 中。您不需要 cURL 站点中的 libcurl.dll。

这篇笔记解决了我的问题。想到分享。libeay32.dll 和 ssleay.dll 你会在你的 php 安装文件夹中找到。

于 2012-12-19T13:49:52.640 回答
2

我同意 Erroid,您必须将 PHP 目录添加到 PATH 环境中。

PATH=%PATH%;<Your_PHP_Path>

例子

PATH=%PATH%;C:\php

它对我有用。谢谢你。

于 2015-01-28T04:37:24.167 回答
1

您可以在http://www.apachefriends.org/en/xampp.html找到 XAMPP

http://www.apachefriends.org/en/xampp-windows.html解释了适用于 Windows 的 XMAPP。

是的,安装后有3个php.ini文件,一个是php4的,一个是php5的,一个是apache的。请相应地修改它们。

于 2008-10-08T12:20:40.047 回答
1

我解决了这个问题。

在我的 apache 中,我必须指定:

PHPIniDir "C://php" AddType application/x-httpd-php .php

对于 php.ini,不要使用 php.ini_recommend,而是使用 php.ini_dist 来配置我的 php.ini。

然后确保 php 引擎已打开。然后它现在可以工作了。谢谢大家。

于 2008-10-08T23:01:05.683 回答
0

您可以从这里使用 curl .download 文件的二进制文件:http: //www.paehl.com/open_source/? CURL_7.22.0 下载文件并解压后放入任何驱动器并将绝对路径设置为环境现在您可以在 windows 中也可以使用 curl 作为命令。像 c:\curl -u user@example.com:password http://localhost:3000/user/sign_in

于 2011-11-23T11:14:42.633 回答
0

您还可以使用CygWin并安装 cURL 包。它工作得很好,完美无瑕!!

于 2017-05-30T20:56:30.487 回答
0

我已经尝试了一切 - 但没有任何帮助。搜索了几个小时后,我发现了以下信息:

Apache 2.4.18 出于某种原因不加载 php 7.2 curl。我将我的 Apache 更新到 2.4.29 并立即加载 curl

http://forum.wampserver.com/read.php?2,149346,149348

我应该说什么:我更新了 Apache 并且 curl 运行起来很有魅力

于 2018-11-27T21:06:03.430 回答