allow_url_fopen已打开,但phpinfo说关闭

twh00eeo  于 2023-02-03  发布在  PHP
关注(0)|答案(3)|浏览(173)

自从我把服务器升级到PHP7或者我为我的服务器启用了AutoSSL之后,我就不能上传文件了。我的错误如下

fopen(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0

我不知道allow_url_fopen=0是从哪里来的,因为全局php.ini和子域中的php.ini都使用了stating

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

我正在使用Laravel5.2和图像干预包来处理上传的图像。正如我所说,这是所有工作之前PHP7和AutoSSL
我错过了什么?

ilmyapht

ilmyapht1#

我可以通过编辑“MultiPHP INI编辑器”部分找到WHM中allow_url_fopen被关闭的位置。从那里我选择了PHP7。它给我的第一个选项是启用allow_url_fopen。这修复了我的错误。
我无法通过SSH找到allow_url_fopen被禁用的地方,我想这是因为我不了解从PHP5到PHP7的升级过程,而且我只通过cPanel为每个帐户启用了PHP7,尽管Root似乎仍然在使用PHP5 for php.ini。

2guxujil

2guxujil2#

我遇到了同样的问题。池的配置被禁用选项:

A)首先,我尝试查找正在修改设置的文件:

# cd /etc/php
    # grep -r allow_url_fopen

7.3/fpm/pool.d/worpresspool1.conf:php_admin_flag[allow_url_fopen] = off
7.3/fpm/php.ini:allow_url_fopen = On
7.3/cli/php.ini:allow_url_fopen = On

B)然后我编辑了文件

# vi /etc/php/7.3/fpm/pool.d/worpresspool1.conf

并使用;注解上面的行:

;php_admin_flag[allow_url_fopen] = off

C)在我的例子中,我重新启动了php-fpm服务,因为我使用的是Fast-cgi

# systemctl restart php7.3-fpm
hfsqlsce

hfsqlsce3#

在WHM的MultiPHPManager中,在PHP-FPM INI设置下,将URL视为文件(allow_url_fopen)-选中此选项阻止域更改设置-取消选中此选项(重要)然后重新启动PHP-FPM服务,它会工作。同时,确保在域级别启用它。

相关问题