【发布时间】:2017-09-18 11:47:03
【问题描述】:
自从我将服务器更新到 PHP7 或为我的服务器启用 AutoSSL 后,我一直无法上传文件。我的错误如下
fopen(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0
我不知道 allow_url_fopen=0 是从哪里来的,因为在全局 php.ini 和子域内的 php.ini 中都使用了声明
allow_url_fopen=On
allow_url_include = On
在 phpinfo() 中,我看到我的 php.ini 文件在哪里...
Configuration File (php.ini) Path /opt/cpanel/ea-php70/root/etc
Loaded Configuration File /opt/cpanel/ea-php70/root/etc/php.ini
当我打开这个 php.ini 文件时,我看到 allow_file_fopen 是“开启”
; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
; http://php.net/allow-url-fopen
allow_url_fopen = On
; Whether to allow include/require to open URLs (like http:// or ftp://) as fil$
; http://php.net/allow-url-include
allow_url_include = On
但在同一个 phpinfo() 文件中,我看到 allow_file_fopen 已关闭
Directive Local Value Master Value
allow_url_fopen Off Off
allow_url_include Off Off
从另一个堆栈交换线程告诉我尝试以下代码,结果它是关闭的
if (ini_get("allow_url_fopen") == 'On') {
echo "allow_url_fopen is ON";
} else {
echo "allow_url_fopen is OFF";
}
之前我确实通过在我的控制器中使用以下代码来实现此功能,但这不再起作用,原因我不知道
ini_set('allow_url_fopen',1);
我正在使用 Laravel 5.2 和图像干预包来处理上传的图像。正如我所说,这一切都在 PHP7 和 AutoSSL 之前工作
我错过了什么?
【问题讨论】:
-
您在修改 php.ini 后是否重新启动了您的网络服务器(Apache?)?
-
是的,我做到了。但仍然没有任何改变
-
请输入
php --ini,看看您的安装是否也在加载其他ini文件。如果是这样(尤其是使用 cpanel),则可能会在附加的 ini 文件中禁用该设置,因此会覆盖您的(手动)设置。 -
使用 "echo 'Current PHP version: ' . phpversion(); "来检查 php 版本。如果不是 php7 则编辑相应的 ini 文件
-
@Confused -
Current PHP version: 7.0.18
标签: php