以前從未發生過這種情況。通常它會顯示錯誤,但現在它只給我一個 500 內部伺服器錯誤。當然之前,當它顯示錯誤時,是不同的伺服器。現在我在一個新伺服器上(我有完整的 root,所以如果我需要在 php.ini 中的某個地方配置它,我可以。)或者可能是 Apache 的東西?
我一直在忍受它,只是將文件傳輸到我的其他伺服器並在那裡運行它來查找錯誤,但這變得太乏味了。有辦法解決這個問題嗎?
從命令列使用 php -l (即「L」)輸出可能導致 PHP 拋出狀態 500 錯誤的語法錯誤。它會輸出如下內容:
php -l
PHP 解析錯誤:語法錯誤,第 18 行 中出現意外的「}」
檢查 php.ini 檔案中的 error_reporting、display_errors 和 display_startup_errors 設定。它們應該分別設定為E_ALL 和"On"(儘管您不應該在生產伺服器上使用display_errors,因此停用此選項並使用log_errors 相反,如果/當你部署它時)。您也可以在腳本的開頭更改這些設定(display_startup_errors 除外),以便在運行時設定它們(儘管您可能無法透過這種方式捕獲所有錯誤):
php.ini
error_reporting
display_errors
display_startup_errors
E_ALL
"On"
error_reporting(E_ALL); ini_set('display_errors', 'On');
之後,重新啟動伺服器。
從命令列使用
php -l
(即「L」)輸出可能導致 PHP 拋出狀態 500 錯誤的語法錯誤。它會輸出如下內容:PHP 解析錯誤:語法錯誤,第 18 行 中出現意外的「}」
檢查
php.ini
檔案中的error_reporting
、display_errors
和display_startup_errors
設定。它們應該分別設定為E_ALL
和"On"
(儘管您不應該在生產伺服器上使用display_errors
,因此停用此選項並使用log_errors 相反,如果/當你部署它時)。您也可以在腳本的開頭更改這些設定(display_startup_errors
除外),以便在運行時設定它們(儘管您可能無法透過這種方式捕獲所有錯誤):之後,重新啟動伺服器。