2017-04-21 110 views
1

由於無論何時我將服務器更新到PHP7或當我爲服務器啓用AutoSSL時,我都無法上載文件。我的錯誤如下allow_url_fopen已打開,但phpinfo已關閉

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 

從另一個堆棧交換線程有人告訴我,試試下面的代碼,原來它是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和Image干預軟件包來處理上傳的圖像。正如我所說,這是所有PHP7和AutoSSL之前工作

我錯過了什麼?

+0

您是否在修改php.ini後重新啓動了您的網絡服務器(Apache?)? – Halcyon

+0

是的,我做到了。但仍然沒有任何變化 – warmwhisky

+0

請輸入'php --ini'並查看,如果您的安裝也正在加載其他ini文件。如果是這樣(尤其是使用cpanel),可能會有機會,該設置在另外的ini-file中被禁用,因此會覆蓋您的(手動)設置。 – dognose

回答

1

通過編輯「MultiPHP INI編輯器」部分,我能夠找到allow_url_fopen在WHM內部關閉的位置。從那裏我選擇了PHP7。它給了我第一個選項來啓用allow_url_fopen。這解決了我的錯誤。

我找不到allow_url_fopen通過SSH被禁用。我想這是因爲我不理解從PHP5到PHP7的升級過程,並且我只通過cPanel爲每個帳戶啓用了PHP7,儘管Root仍然使用PHP5作爲php.ini。