PHP Conference Japan 2024

安装

要使用 PHP 的 cURL 支持,您还必须编译 PHP --with-curl[=DIR],其中 DIR 是包含 libinclude 目录的目录的位置。在 include 目录中应该有一个名为 curl 的文件夹,其中应该包含 easy.hcurl.h 文件。在 lib 目录中应该有一个名为 libcurl.a 的文件。

注意Win32 用户请注意
为了在 Windows 环境中启用此模块,必须在您的 PATH 中存在 libeay32.dllssleay32.dll,或者从 OpenSSL 1.1 开始,必须存在 libcrypto-*.dlllibssl-*.dll。此外,您的 PATH 中必须存在 libssh2.dll 您不需要 cURL 站点上的 libcurl.dll

添加注释

用户贡献注释 14 条注释

comments at adstation-systems dot com
16 年前
您可能会像我一样对在 php 中安装 cURL 的说明感到困惑。“要使用 PHP 的 cURL 支持,您还必须编译 PHP --with-curl[=DIR]…”对我来说很模糊,因为我在安装时没有编译 php。我只是将所有必要的复制到 php 手册中非常清楚地描述的正确文件夹中。

我正在使用 Windows XP 和带有 php 5.1.6 的 Apache。在这种情况下,它可能适用于 5.0 及更高版本的 php,只需从指令 extension=php_curl.dll 前面的分号“;”中删除即可。您还应该检查以确保 libeay32.dll 和 ssleay32.dll 位于您的 php 目录中,与其他 dll 一起。此目录应该已经在您的路径中,因此将它们放入路径中的说明不是关键的。

然后您可以运行 phpinfo(),您应该在列表中看到 cURL 的标题。

简而言之,我的 cURL 安装包括删除 php.ini 中 ;extension=php_curl.dll 行前面的分号,保存 php.ini 并重新启动 Apache。如果您使用的是 php 5.0 及更高版本并且难以理解 php.net 上的 cURL 安装页面上的说明,则可以尝试此方法。

您也可能发现 http://curl.phptrack.com/forum/viewtopic.php?t=52 上的信息很有用。
Developtus.com
9 年前
在 Windows 7 x64 上升级到 php 5.6.9 后,curl 不再被识别。服务器启动包没有错误,只是不可用,并且没有显示在 phpinfo.php 中。deplister.exe 正常工作
我修复了从 php 文件夹(在我的情况下为 D:\xampp\php)复制以下列表文件
libeay32.dll
libssh2.dll
ssleay32.dll
到 c:\xampp\apache\bin(或您的 apache\bin 路径),重新启动 apache 并且工作正常,apache 的库已过时
Joseph Marlin
13 年前
Ubuntu 11.04

我已经设置了 Apache 和 PHP5,但简单地添加 php5-curl 和 curl *不起作用*。我还必须获取 libcurl3 和 libcurl3-dev。完整命令

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

您将知道它是否有效,因为 phpinfo() 将获得一个包含 Curl 信息的新部分。
epos_jk
7 年前
您不需要复制文件即可将 PHP CURL 与 Apache 2.4 一起使用 - 请改用 apache 配置文件中的 LoadFile 指令
LoadFile "C:/php7/libssh2.dll"
(这正是我让它工作所需的一切)
epos_jk
7 年前
从 1.1.0 版本开始,OpenSSL 更改了其库名称!
libeay32.dll 现在是 libcrypto-*.dll(例如,对于 64 位 Windows 上的 OpenSSL 1.1.x,为 libcrypto-1_1-x64.dll)
ssleay32.dll 现在是 libssl-*.dll(例如,对于 64 位 Windows 上的 OpenSSL 1.1.x,为 libssl-1_1-x64.dll)
TristanV
10 年前
如果您在 Windows 上使用 Wampserver 或类似的预配置 PHP,如果您已执行所有建议的操作(路径正确,dll 位于 System32 或 Wow64 文件夹中,php.ini 中取消注释 php_curl 扩展,重新启动机器并重新启动服务),并且您仍然收到消息说 curl 未安装
- 您可能正在运行命令行脚本(而不是 Web 应用程序中的 curl 指令)。如果是,请记住有两个不同的 php.ini 配置文件:一个用于 php-cli 命令(在命令行运行 php),另一个用于 php 指令(从 www 文件夹中的页面运行)。
Wampserver 的菜单项“php.ini”仅打开 Web 服务器的 php.ini,而不是 php-cli 的 php.ini。
因此,检查您的 php-cli 的 php.ini 配置文件将非常有用!(您将在 php.exe 的安装文件夹中找到它)
您需要在此 php.ini 文件中取消注释扩展 php_curl,以便命令行能够使用 curl。
顺便说一下,还要取消注释 php_openssl 扩展(通常与 curl 一起使用)。
我希望这个已修复的问题可以帮助其他人 :)
jorijnsmit at gmail dot com
10 年前
没有必要始终(重新)编译 PHP。对我来说,安装 php5-curl 并重新启动 Apache 就足够了

$ sudo apt-get install php5-curl
$ sudo /etc/init.d/apache2 restart
regs at voidship dot net
16 年前
如果您像我一样愚钝,请在 Ubuntu 系统(可能还有 Debian)上省去麻烦,然后……

$ sudo apt-get install php5-curl

然后感到愚蠢,但不要像我一样愚蠢。
anonymous
6 年前
在 Apache 2.4 32 位版本 Windows 7 x64 上升级到 php 7.1.6

此 curl 实现有效

1. C:/(php 文件夹路径)/php.ini
启用 extension=php_curl.dll

libeay32.dll、ssleay32.dll、libssh2.dll 直接在 php7 文件夹中找到

2. 将此添加到 Apache/conf/httpd.conf
# 加载 curl 和 open ssl 库
LoadFile "C:/(php 文件夹路径)/libeay32.dll"
LoadFile "C:/(php 文件夹路径)/ssleay32.dll"
LoadFile "C:/(php 文件夹路径)/libssh2.dll"
Greg
4年前
对于那些可能遇到与curl相关的WordPress问题的人来说,我的解决方法是在配置中指定了curl.cainfo。这导致一个插件给出了一些不友好的错误,我最终能够追踪到它。

curl.cainfo = "C:\php\extras\ssl\cacert.pem"

您需要一个cacert.pem的副本(PHP中没有自带,并且需要定期更新,可以在以下官方永久链接中找到)
https://curl.haxx.se/ca/cacert.pem

他们使用修改版的Mozilla证书存储库,旨在与libcurl配合使用。

我不是专家,这只是为我修复错误的方法。

(cacert.pem列出了官方的根证书提供商,以便您的计算机知道哪些证书是安全的,这是我的通俗理解。我确定这在技术上并不准确,但对我们这些外行来说足够接近了。)
NV
2年前
如果尝试在Windows上安装(我使用的是Windows 10、Apache 2.4、PHP 8.1),并且curl模块无法加载,并且PHP显示/记录了以下错误,但<phpPath>\ext\php_curl.dll确实存在

[14-Apr-2022 23:41:36 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'curl' (tried: <phpPath>\ext\curl (The specified module could not be found), <phpPath>\ext\php_curl.dll (The specified module could not be found)) in Unknown on line 0

问题不在于它找不到模块,而在于它找不到它的依赖项(即<phpPath>\libcrypto-1.1.dll和libssl-1.1.dll或类似文件)。如其他评论中所述,您需要将<phpPath>添加到系统变量PATH变量中。

但是,如果您将Apache作为服务启动,则默认情况下服务将在本地系统帐户下运行。在这种情况下,****您需要重新启动****才能更新本地系统帐户的PATH变量更改(请参阅以下内容以供参考)
https://stackoverflow.com/questions/32068893/how-to-change-path-value-for-local-system-account-in-ms-windows)
wixelbomb at yahoo dot com
14年前
仅针对Windows XP安装的补充说明...

其他人礼貌地提供的说明对于那些将Windows/system32目录作为与php_curl相关的.dll文件的存储库的人来说仍然缺少一个小项目。

在遵循其他地方给出的建议后,转到php安装的ext目录并将php_curl.dll复制到Windows/system32文件夹。

所以...
1) 从php.ini中的extension=php_curl.dll中删除';'
2) 确保ssleay32.dll和libeay32.dll位于Windows/system32中。
3) 也将php_curl.dll复制到Windows\System32中。

再见

bearstate
karliskavacis at gmail dot com
8年前
在我的情况下,在运行Windows 10和Apache Httpd 2.4时,我必须将我的PHP7根目录添加到Windows PATH中,它解决了加载几个PHP扩展失败的问题。
1004707812 at qq dot com
6 年前
Win10 64位,php7 x64,apache x64
在php.ini中明确设置“ extension_dir = "X:/WAMP/php/ext" ”非常重要。
请记住,最近一些dll的名称发生了更改,尤其是在x64环境中。
To Top