我一直在抨擊我的頭,試圖將一些超級舊的PHP腳本移植到PHP 7.0,這被證明是不可能的,因爲我無法弄清楚錯誤是什麼!如果我執行某種語法或解析錯誤,腳本會高興地向我展示這些內容,但我無法獲得任何錯誤,告訴我當我嘗試調用lkasjdfalkjshdfasdF();
(顯然未設置)時,我的函數未定義。PHP 7腳本不顯示錯誤,或將它們寫入日誌
事情我已經嘗試:
這是我.htaccess
文件在同一目錄作爲我的腳本
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_value error_log "/var/log/apache2/error.log"
我也有這個在我的腳本的頂部
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
如果我在我的一行上添加了echho 'test';
,它會在頁面上顯示以下內容,並在錯誤日誌中顯示
Parse error: syntax error, unexpected ''test'' (T_CONSTANT_ENCAPSED_STRING) in /domains/stupidphpscripts.com/public_html/lib/dumbfile.php on line 200
如果我在我的一行上添加echo asdfasdf();
,我沒有輸出,並且錯誤日誌中沒有任何內容。
我甚至寫了這個愚蠢的功能
$DebugPointCointer = 0;
function DebugPoint() {
global $DebugPointCointer;
echo "Debug point $DebugPointCointer on line " . debug_backtrace(1)[0]['line'] . "\n";
$DebugPointCointer++;
}
所以,我可以確保該腳本是失敗,我懷疑,但在所有誠實,這些信息並沒有真正幫助我。
還剩什麼可嘗試?
/var/log/apache2/error.log爲空,並且權限是什麼? –
如果該日誌文件真的是空的,那就是錯誤的文件。 – arkascha
@DarrellUlm它不是空的,我注意到的錯誤工作成功進入日誌文件,但沒有顯示在任何地方的錯誤也沒有顯示在該日誌文件中,但日誌文件顯然與工作錯誤在同一個腳本中 –