Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未加载PHP7卷_Php_Windows_Apache_Curl_Php 7.1 - Fatal编程技术网

未加载PHP7卷

未加载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

我已经在本地计算机上安装了带有PHP7.1的Apache2.4。我在php.ini(extension=php_curl.dll)中启用了curl,但由于某些原因,即使启用了curl,也没有加载它,我制作了一个phhinfo来检查,没有任何内容,我还制作了一个小脚本:

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);