我已经在我的本地计算机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上。
答案 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_sslLoadModule 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/