未加载PHP7卷
我已经在本地计算机上安装了带有PHP7.1的Apache2.4。我在php.ini(extension=php_curl.dll)中启用了curl,但由于某些原因,即使启用了curl,也没有加载它,我制作了一个phhinfo来检查,没有任何内容,我还制作了一个小脚本:未加载PHP7卷,php,windows,apache,curl,php-7.1,Php,Windows,Apache,Curl,Php 7.1,我已经在本地计算机上安装了带有PHP7.1的Apache2.4。我在php.ini(extension=php_curl.dll)中启用了curl,但由于某些原因,即使启用了curl,也没有加载它,我制作了一个phhinfo来检查,没有任何内容,我还制作了一个小脚本: function isExtensionLoaded($extension_name){ return extension_loaded($extension_name); } echo isExtensionLoade
function isExtensionLoaded($extension_name){
return extension_loaded($extension_name);
}
echo isExtensionLoaded('curl');
什么都没有,是空白的,这意味着没有被加载,缺少什么?在Windows 10上进行即时通讯。请确保编辑的文件正确。CLI、Apache2和其他SAPI应该有单独的文件。执行此操作后,请重新启动Apache2服务器。很难猜出它为什么不运行,而且正如我看到的,您没有收到错误消息 您应该会出现错误,但我很确定您没有在php.ini中设置错误日志记录 首先,我们需要激活日志记录以了解扩展无法正确运行的原因: 请在php.ini文件中更改/添加以下行:
display_startup_errors = On
error_log = 'c:/php-logs/php-error.log'
现在创建php日志
目录和php日志.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
我一直在寻找解决方案,直到我决定阅读PHP文档网站上的一些评论: 我修复了php文件夹中的以下列表文件(在我的例子中是C:\xampp\php7) 有些人还必须移动nghttp2.dll才能让它工作 到您的apache/bin文件夹(在我的例子中是C:\xampp\apache\bin) 我还将这些文件复制到了C:\Windows\System32,但我认为没有加载任何这些文件
编辑:我成功地从system32文件夹中删除了这些dll,并能够在之后运行curl在我的情况下,当我还将nghttp2.dll复制到Apache bin目录时,它起作用了如果您将ssl
VERIFYPEER
设置为false
curl_setopt($get, CURLOPT_SSL_VERIFYPEER, false);
它会很好用的。
您还可以通过从下载cacert.pem使curl与ssl一起工作
并将证书添加到php.ini文件中
curl.cainfo="C:\path\cacert.pem"
openssl.cafile="C:\path\cacert.pem"
及
这也行
这样可以防止中间人攻击,
查看此链接以了解更多详细信息确保您已重新启动apache2服务器“空白”表示“其加载,但无法显示”或“它抛出错误,但在php.ini中未激活错误日志记录”等…Hello给了我此错误:“php警告:php启动:无法加载动态库'C:\php\ext\php\u curl.dll”它是这样的:extension_dir=“C:\PHP\ext”你能检查一下
httpd.conf
文件吗,我猜mod_ssl.so没有安装,请检查我的更新答案。请注意,我已经启用了,这是注释,我删除了注释:LoadModule ssl_module modules/mod_ssl.so这三个和nghttp2.dll,对我来说。干杯(也是对@nick proto)我不明白为什么第三方捆绑包如此受欢迎,但你显然总是需要为简单的功能做这样的变通。在官方PHP二进制文件中,curl总是开箱即用:-?
curl.cainfo="C:\path\cacert.pem"
openssl.cafile="C:\path\cacert.pem"
curl_setopt($get, CURLOPT_SSL_VERIFYPEER, true);