Apache-2.2

即使啟用了所有錯誤報告,PHP 也會顯示空白頁

  • June 16, 2012

我正在嘗試在 Drupal 應用程序中調試損壞的頁面,並且很難讓 PHP 吐出任何有用的東西。我有以下設置:

error_reporting = E_ALL
display_errors = On
display_startup_errors = On
log_errors = On
error_log = /var/log/php/php_error.log

我有一個文件顯示 phpinfo(),它確認這些變數已針對環境正確設置。我已將 memory_limit 增加到 256M(這應該綽綽有餘)。然而,我得到的唯一指示是 apache 訪問日誌中的狀態 500 程式碼和來自 PHP 的空白白頁。

Apache 虛擬主機的 LogLevel 設置為調試,錯誤日誌僅輸出:

[Sat Jun 16 20:03:03 2012] [debug] mod_deflate.c(615): [client 173.8.175.217] Zlib: Compressed 0 to 2 : URL /index.php, referer: http://ec2-174-129-192-237.compute-1.amazonaws.com/admin/reports/updates
[Sat Jun 16 20:03:03 2012] [error] [client 173.8.175.217] File does not exist: /var/www/favicon.ico
[Sat Jun 16 20:03:03 2012] [debug] mod_deflate.c(615): [client 173.8.175.217] Zlib: Compressed 42 to 44 : URL /favicon.ico

PHP 錯誤日誌根本不輸出任何內容。核心和系統日誌顯示與 Apache 或 PHP 無關。我還嘗試安裝 suphp 並檢查其日誌以確認使用者正在正確執行:

[Sat Jun 16 20:02:59 2012] [info] Executing "/var/www/index.php" as UID 1000, GID 1000
[Sat Jun 16 20:05:03 2012] [info] Executing "/var/www/index.php" as UID 1000, GID 1000

這是在具有以下 PHP 模組的 Ubuntu 12.04 x86_64 上:

ii  php5                             5.3.10-1ubuntu3.1          server-side, HTML-embedded scripting language (metapackage)
ii  php5-cgi                         5.3.10-1ubuntu3.1          server-side, HTML-embedded scripting language (CGI binary)
ii  php5-cli                         5.3.10-1ubuntu3.1          command-line interpreter for the php5 scripting language
ii  php5-common                      5.3.10-1ubuntu3.1          Common files for packages built from the php5 source
ii  php5-curl                        5.3.10-1ubuntu3.1          CURL module for php5
ii  php5-gd                          5.3.10-1ubuntu3.1          GD module for php5
ii  php5-mysql                       5.3.10-1ubuntu3.1          MySQL module for php5

那麼,我在這裡缺少什麼?為什麼沒有錯誤報告?

Drupal 本身會更改在處理 ini 文件(您的設置所在的位置)之後發生的錯誤報告和顯示設置。要在 drupal 之後更改設置,您可以添加

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

到 index.php。

Drupal 很複雜。空白的白頁在 Drupal 社區中被親切地稱為“死亡白屏”(WSOD)。有關更多故障排除幫助,請參閱http://drupal.org/node/158043

引用自:https://serverfault.com/questions/399455