在PHP7 windows10 64位Apache 2.4上启用cURL

Son*_*nic 9 64-bit curl apache2.4 windows-10 php-7

我使用的是Windows10 64位Apache 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;"

任何帮助非常感谢.

bnp*_*887 21

以下是从获取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. 重启Apache.

  • 刚刚遇到Apache 2.4.29和PHP 7.2.0(都是x64)的问题.我安装的PHP(直接来自windows.php.net)没有你列出的一堆文件.我将`libssh2.dll`复制到我的Apache`bin /`并且它有效.救星. (5认同)
  • PHP 7.2.2 Windows 10 Apache 2.4 经过一段时间寻找为什么 cURL 库不加载的答案后,我只是将 libssh2.dll 从 \php 复制到 \Apache24\bin,一切都开始正常工作 (3认同)
  • 救星!我将 libssh2.dll 复制到我的 Apache bin/ 并且它有效 (2认同)
  • 值得注意的是,php 7 的某些版本不显示 *.dll 的扩展名,例如,它只是 extension=curl,而不是 php.ini 文件上的 extension=curl.dll。因此在取消注释扩展时要小心 (2认同)

hoo*_*ogw 11

我通过以下方式修复:

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";
}
?>
Run Code Online (Sandbox Code Playgroud)


小智 7

在PHP 7.2.2中Windows 10 Apache 2.4中搜索了一段时间后,为什么不加载cURL库,我只是将libssh2.dll从\ php复制到\ Apache24 \ bin,一切开始正常


der*_*imo 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