2017-06-16 78 views
0

我一直在抨擊我的頭,試圖將一些超級舊的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++; 
} 

所以,我可以確保該腳本是失敗,我懷疑,但在所有誠實,這些信息並沒有真正幫助我。

還剩什麼可嘗試?

+0

/var/log/apache2/error.log爲空,並且權限是什麼? –

+0

如果該日誌文件真的是空的,那就是錯誤的文件。 – arkascha

+0

@DarrellUlm它不是空的,我注意到的錯誤工作成功進入日誌文件,但沒有顯示在任何地方的錯誤也沒有顯示在該日誌文件中,但日誌文件顯然與工作錯誤在同一個腳本中 –

回答

-1

E_ALL是不夠的。

使用:

error_reporting(-1); //所有與未來(至今仍枝繁葉茂inplemented功能)的開發環境!

你真的在正確的主機上運行嗎?

  • 可能是存儲到不同錯誤日誌的虛擬主機?

主腳本是否有任何ats「@」 - > @functionToCall()包含哪些東西?