我已經為這個奇怪的問題敲了幾個小時。我的 Magento 向我顯示了錯誤:
Exception #0 (Exception): Warning: ini_set() has been disabled for security reasons
/path/to/vendor/magento/framework/Session/SessionManager.php
on line 598
這是第 598 行的樣子:
598: $result = ini_set('session.use_only_cookies', '1');
奇怪的部分來了。當我在這行 598 上方添加以下內容時:
597: echo ini_get('disable_functions');die;
598: $result = ini_set('session.use_only_cookies', '1');
我明白了:
passthru,shell_exec,system
此禁用功能串列中沒有ini_set,但不知何故 Magento 設法認為它因“安全原因”而被阻止......
我已經檢查了服務器上所有可能的 PHP 配置。ini_set()不會在任何地方被阻止。這讓我很難過。
這是怎么回事?
編輯 1
我在 Magento 之外創建了一個測驗腳本,其中包含以下內容:
var_dump(ini_set('display_errors', 'Off'));
var_dump(ini_get('display_errors') );
這就是我設定的任何 ini 值...
NULL string(0) ""
uj5u.com熱心網友回復:
您的托管服務提供商啟用了一些超出 PHP 內置的安全措施。
我的第一個猜測是令人愉快的名字Snuffleupagus。除此之外,它還具有對 ini 設定的全面控制以及以非常精細的方式阻止函式呼叫的能力。另一方面,我沒有看到任何關于禁用 phpinfo() 的資訊,你說它沒有顯示任何內容;并且您的錯誤訊息表明該函式已轉換為帶有警告的無操作,而不是錯誤。(然后 Magento 將其提升為例外。)
無論哪種方式,除了聯系您的托管服務提供商之外,您很可能無能為力。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/459454.html
上一篇:社會工程學簡述
