我正在使用 Windows10 64 位 阿帕奇 2.4.25 (Win64) PHP 7.1.0-Win32-VC14-x64
当我尝试调用curl_init()函数时,我收到一条错误消息“调用未定义的函数curl_init()” 尝试以下
非常感谢任何帮助。
以下是从获取 PHP 到启用 cURL 的步骤:
我通过以下方式修复了它:
1)编辑 php.ini 文件启用(取消注释)php_curl.dll 和 php_openssl.dll 扩展
2)转到c:/php7/
将 libssh2.dll 复制到 c:/apache24/bin 文件夹中。
3)测试:curl_test.php
<?php
// Script to test if the CURL extension is installed on this server
// Define function to test
function _is_curl_installed() {
if (in_array ('curl', get_loaded_extensions())) {
return true;
}
else {
return false;
}
}
// Ouput text to user based on test
if (_is_curl_installed()) {
echo "cURL is <span style=\"color:blue\">installed</span> on this server";
} else {
echo "cURL is NOT <span style=\"color:red\">installed</span> on this server";
}
?>
在 PHP 7.2.2 Windows 10 Apache 2.4 经过一段时间的搜索为什么 cURL 库无法加载的答案后,我只是将 libssh2.dll 从 \php 复制到 \Apache24 中,一切都开始正常工作
我在使用 Acquia 的 Dev Desktop 时遇到了同样的问题,将 libcrypto-1_1-x64.dll 和 libssl-1_1-x64.dll 从 PHP7.3 文件夹复制到 Apache/bin 文件夹为我解决了这个问题。
“从版本 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)”
参见 https://www.php.net/manual/en/curl.installation.php#121921。
在花了无数个小时甚至几天尝试了 stackoverflow 和其他地方发布的所有解决方案之后,2022 年唯一对我有用的是以下解决方案,(摘自 php cURL 手册的评论)
尝试将这些字符串添加到 apache 配置(httpd.conf):
# manually load SSL libraries for cURL
LoadFile "(path\to\php)\libssh2.dll"
LoadFile "(path\to\php)\libcrypto-1_1-x64.dll"
LoadFile "(path\to\php)\libssl-1_1-x64.dll"
并重新启动apache(不要忘记使用你的php文件夹名称);
不知道这是否重要,但我使用的是 Windows 7,使用 Apache 2.4 和 PHP 7.4。我的系统上没有安装任何 WAMP/XAMP 服务器。相反,我下载了压缩版本,并在需要使用本地主机时从本地非系统驱动器手动启动它们。
另外,在它最终起作用后,我从 C:/Windows/System32 和 Apache/bin 中删除了 libeay32.dll、ssleay32.dll。
这对我有用......
环境信息
步骤1
从 PHP 下载中,我得到了 VC15 x64 Thread Safe (2019-May-01 10:48:48) https://windows.php.net/download#php-7.2
第2步
解压zip文件并将
/ext/php_curl.dll
复制到C:\wamp64\bin\php\php7.2.18\ext
目录(通过覆盖)
第3步
重新启动所有服务
完成
这救了我的命(来自https://www.php.net/manual/en/curl.installation.php)
在 Apache 2.4 32 位版本 Windows 7 x64 上升级到 php 7.1.6
这个curl实现有效:
- C:/(php 文件夹的路径)/php.ini 启用扩展=php_curl.dll
libeay32.dll、ssleay32.dll、libssh2.dll直接在php7文件夹中找到
- 将其添加到 Apache/conf/httpd.conf
# load curl and open ssl libraries LoadFile "C:/(path to php folder)/libeay32.dll" LoadFile "C:/(path to php folder)/ssleay32.dll" LoadFile "C:/(path to php folder)/libssh2.dll"
如果您没有找到其中一些 DLL,请尝试下载 php 的非 TS 版本并从该文件夹中复制它们。
在 php.ini 中启用 Windows 10、php8、apache24、curl 扩展 - 在最终启用的 Curl 中将 libssh2.dll 从 \php 复制到 \Apache24
我将以下 dll 从 php 主文件夹复制到 apache24 bin 文件夹
libcrypto-1_1-x64.dll
libssl-1_1-x64.dll
libssh2.dll
它就像一个魅力
并重新启动apache服务器 我的 Windows 是 10,我的 php 版本是 php 8.0.28 - apache 2.4.57-win64