在 PHP7 windows10 64 位 Apache 2.4 上启用 cURL
Enable cURL on PHP7 windows10 64 bit Apache 2.4
我正在使用
Windows10 64 位
阿帕奇 2.4.25 (Win64)
PHP7.1.0-Win32-VC14-x64
当我尝试调用 curl_init() 函数时,我收到一条错误消息 "Call to undefined function curl_init()"
尝试关注
- 正在将 ssleay32.dll & libeay32.dll & php7ts.dll 复制到 apache/bin 文件夹
- 正确设置路径以包含上述文件"C:/PHP;"
非常感谢任何帮助。
以下是从获取 PHP 到启用 cURL 的步骤:
- 下载PHP(这些步骤已使用 7.1 测试)
- 将 PHP 文件夹添加到 PATH 环境变量
- 使用扩展目录的绝对路径更新 php.ini 文件并取消注释 php_curl.dll 和 php_openssl.dll 扩展
- 更新 httpd.conf(Apache 配置文件)以在 PHP 文件夹中加载 php7apache2_4.dll 模块并将 PHPIniDir 设置为 PHP 目录
- 复制 libeay32.dll libssh2.dll 和 ssleay32.dll 到 apache/bin(替换现有的)
- 重新启动 Apache。
我通过以下方式修复了它:
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";
}
?>
in PHP 7.2.2 Windows 10 Apache 2.4 经过一段时间搜索为什么 cURL 库无法加载的答案后,我刚刚从 \[= 复制了 libssh2.dll 15=] 到 \Apache24\bin 一切都开始正常工作了
这是对我有用的...
环境信息
- WAMP 服务器版本 3.1.9
- 阿帕奇 2.4.39
- PHP 7.2.18
步骤 1
从 PHP 次下载中,我获得了 VC15 x64 线程安全(2019 年 5 月 1 日 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)
Upgrading to php 7.1.6 on Apache 2.4 32bit version Windows 7 x64
this curl implementation works:
- C:/(path to php folder)/php.ini enable extension=php_curl.dll
libeay32.dll, ssleay32.dll, libssh2.dll find directly in php7 folder
- add this to 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,请尝试下载 non-TS 版本 php 并从该文件夹中复制它们。
我在使用 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(例如 libcrypto-1_1-x64.dll for OpenSSL 1.1.x on 64bit windows)
ssleay32.dll 现在是 libssl-.dll(例如 libssl-1_1-x64.dll for OpenSSL 1.1.x on 64bit windows)”
- epos_jk
见https://www.php.net/manual/en/curl.installation.php#121921。
在花了无数小时甚至几天尝试了 Whosebug 和其他地方发布的所有解决方案之后,2022 年唯一对我有用的是以下解决方案,(摘自 this comment to the php cURL manual)
尝试将这些字符串添加到 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 服务器。相反,我下载了压缩版本,并在需要使用本地主机时从本地 non-system 驱动器手动启动它们。
此外,在它终于起作用后,我从 C:/Windows/System32 和 Apache/bin.
中删除了 libeay32.dll、ssleay32.dll
我正在使用 Windows10 64 位 阿帕奇 2.4.25 (Win64) PHP7.1.0-Win32-VC14-x64
当我尝试调用 curl_init() 函数时,我收到一条错误消息 "Call to undefined function curl_init()" 尝试关注
- 正在将 ssleay32.dll & libeay32.dll & php7ts.dll 复制到 apache/bin 文件夹
- 正确设置路径以包含上述文件"C:/PHP;"
非常感谢任何帮助。
以下是从获取 PHP 到启用 cURL 的步骤:
- 下载PHP(这些步骤已使用 7.1 测试)
- 将 PHP 文件夹添加到 PATH 环境变量
- 使用扩展目录的绝对路径更新 php.ini 文件并取消注释 php_curl.dll 和 php_openssl.dll 扩展
- 更新 httpd.conf(Apache 配置文件)以在 PHP 文件夹中加载 php7apache2_4.dll 模块并将 PHPIniDir 设置为 PHP 目录
- 复制 libeay32.dll libssh2.dll 和 ssleay32.dll 到 apache/bin(替换现有的)
- 重新启动 Apache。
我通过以下方式修复了它:
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";
}
?>
in PHP 7.2.2 Windows 10 Apache 2.4 经过一段时间搜索为什么 cURL 库无法加载的答案后,我刚刚从 \[= 复制了 libssh2.dll 15=] 到 \Apache24\bin 一切都开始正常工作了
这是对我有用的...
环境信息
- WAMP 服务器版本 3.1.9
- 阿帕奇 2.4.39
- PHP 7.2.18
步骤 1
从 PHP 次下载中,我获得了 VC15 x64 线程安全(2019 年 5 月 1 日 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)
Upgrading to php 7.1.6 on Apache 2.4 32bit version Windows 7 x64
this curl implementation works:
- C:/(path to php folder)/php.ini enable extension=php_curl.dll
libeay32.dll, ssleay32.dll, libssh2.dll find directly in php7 folder
- add this to 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,请尝试下载 non-TS 版本 php 并从该文件夹中复制它们。
我在使用 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(例如 libcrypto-1_1-x64.dll for OpenSSL 1.1.x on 64bit windows) ssleay32.dll 现在是 libssl-.dll(例如 libssl-1_1-x64.dll for OpenSSL 1.1.x on 64bit windows)”
- epos_jk
见https://www.php.net/manual/en/curl.installation.php#121921。
在花了无数小时甚至几天尝试了 Whosebug 和其他地方发布的所有解决方案之后,2022 年唯一对我有用的是以下解决方案,(摘自 this comment to the php cURL manual)
尝试将这些字符串添加到 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 服务器。相反,我下载了压缩版本,并在需要使用本地主机时从本地 non-system 驱动器手动启动它们。
此外,在它终于起作用后,我从 C:/Windows/System32 和 Apache/bin.
中删除了 libeay32.dll、ssleay32.dll