自从我将服务器更新到 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";
}
以前我确实通过在我的 Controller 中使用以下代码来实现它,但是由于我不知道的原因它不再起作用
ini_set('allow_url_fopen',1);
我正在使用 Laravel 5.2 和图像干预包来处理上传的图像。正如我所说,这在 PHP7 和 AutoSSL 之前都是有效的
我错过了什么?
最佳答案
通过编辑“MultiPHP INI 编辑器”部分,我能够找到在 WHM 中关闭 allow_url_fopen
的位置。从那里我选择了 PHP7。它给我的第一个选项是启用 allow_url_fopen
。这修正了我的错误。
我根本找不到通过 SSH 禁用 allow_url_fopen
的位置。我想这是因为我不了解从 PHP5 到 PHP7 的升级过程,并且我通过 cPanel 只为每个帐户启用了 PHP7,尽管 Root 似乎仍在为 php.ini 使用 PHP5。
关于php - allow_url_fopen 打开但 phpinfo 关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43543297/