在 PHP7 windows10 64 位 Apache 2.4 上启用 cURL

问题描述 投票:0回答:9

我正在使用 Windows10 64 位 阿帕奇 2.4.25 (Win64) PHP 7.1.0-Win32-VC14-x64

当我尝试调用curl_init()函数时,我收到一条错误消息“调用未定义的函数curl_init()” 尝试以下

  • 复制 ssleay32.dll & libeay32.dll & php7ts.dll 到 apache/bin 文件夹
  • 正确设置路径以包含上述文件“C:/PHP;”

非常感谢任何帮助。

curl 64-bit windows-10 php-7 apache2.4
9个回答
32
投票

以下是从获取 PHP 到启用 cURL 的步骤:

  1. 下载PHP(这些步骤已使用 7.1 进行测试)
  2. 将 PHP 文件夹添加到 PATH 环境变量
  3. 使用扩展目录的绝对路径更新 php.ini 文件并取消注释 php_curl.dll 和 php_openssl.dll 扩展
  4. 更新httpd.conf(Apache配置文件)以加载PHP文件夹中的php7apache2_4.dll模块并将PHPIniDir设置为PHP目录
  5. 将 libeay32.dll libssh2.dll 和 ssleay32.dll 复制到 apache/bin 中(替换现有的)
  6. 重新启动阿帕奇。

21
投票

我通过以下方式修复了它:

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";
}
?>

12
投票

在 PHP 7.2.2 Windows 10 Apache 2.4 经过一段时间的搜索为什么 cURL 库无法加载的答案后,我只是将 libssh2.dll 从 \php 复制到 \Apache24 中,一切都开始正常工作


5
投票

我在使用 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)”

  • epos_jk

参见 https://www.php.net/manual/en/curl.installation.php#121921


2
投票

在花了无数个小时甚至几天尝试了 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。


0
投票

这对我有用......

环境信息

  • WAMP 服务器版本 3.1.9
  • 阿帕奇2.4.39
  • PHP 7.2.18

步骤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步

重新启动所有服务

完成


0
投票

这救了我的命(来自https://www.php.net/manual/en/curl.installation.php

在 Apache 2.4 32 位版本 Windows 7 x64 上升级到 php 7.1.6

这个curl实现有效:

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

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

  1. 将其添加到 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 版本并从该文件夹中复制它们。


0
投票

在 php.ini 中启用 Windows 10、php8、apache24、curl 扩展 - 在最终启用的 Curl 中将 libssh2.dll 从 \php 复制到 \Apache24


-1
投票

我将以下 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

© www.soinside.com 2019 - 2024. All rights reserved.