PHP 7卷曲未加载

时间:2017-02-27 12:59:32

标签: php windows apache curl php-7.1

我已经在我的本地计算机apache 2.4中安装了PHP 7.1。我在我的php.ini(extension = php_curl.dll)中启用了curl,但由于某种原因,即使在我启用它之后curl也没有加载,我做了一个phhinfo检查,没有,我也做了一个小脚本:

function isExtensionLoaded($extension_name){
    return extension_loaded($extension_name);
}

echo isExtensionLoaded('curl');

什么都没有,是空白的,它意味着什么没有被加载,是不是缺少了什么?我在Windows 10上。

5 个答案:

答案 0 :(得分:8)

在我的情况下,当我将nghttp2.dll复制到Apache bin目录

时,它也有效

答案 1 :(得分:6)

我一直在寻找解决方案,直到我决定在PHP文档网站上阅读一些评论:http://php.net/manual/de/curl.installation.php

我修复了从php文件夹中处理以下列表文件(在我的情况下为C:\ xampp \ php7)

libeay32.dll
libssh2.dll
ssleay32.dll

有些人还必须移动 nghttp2.dll 才能使用。

到你的apache / bin文件夹(在我的情况下是C:\ xampp \ apache \ bin)。

我也将它们复制到C:\ Windows \ System32,但我认为这些文件都没有被加载。

编辑 :我从system32文件夹中成功删除了这些dll,然后能够运行curl

答案 2 :(得分:0)

确保您已编辑了正确的文件。 CLI,Apache2和其他SAPI应该有单独的文件。完成后,重新启动Apache2服务器。

答案 3 :(得分:0)

很难猜测为什么它没有运行,因为我看到你没有得到错误atm。

你应该得到错误,但我很确定你没有在你的php.ini中设置错误记录

首先,我们需要激活日志记录,以了解您的扩展程序无法正常运行的原因:

请在php.ini文件中更改/添加以下行:

display_startup_errors = On
error_log = 'c:/php-logs/php-error.log'

现在创建php-logs目录和php-log.log文件

mkdir c:/php-logs
copy NUL c:/php-logs/php-error.log

现在重启服务器。现在你应该得到错误,请分享错误代码,以便我可以帮助

更新

在`httpd.conf``

中启用mod_ssl
LoadModule ssl_module c:\apache-2.2\modules\mod_ssl.so

答案 4 :(得分:0)

如果将ssl VERIFYPEER设置为false,则可以使用

curl_setopt($get, CURLOPT_SSL_VERIFYPEER, false);

它将正常工作。 您还可以通过从https://curl.haxx.se/docs/caextract.html下载cacert.pem来使ssl与curl配合使用 并将证书添加到您的php.ini文件中

curl.cainfo="C:\path\cacert.pem" 
openssl.cafile="C:\path\cacert.pem"

curl_setopt($get, CURLOPT_SSL_VERIFYPEER, true);

也可以 这样您就可以防止中间人攻击, 检查此链接以获取更多详细信息http://thisinterestsme.com/php-curl-ssl-certificate-error/