Quantcast
Channel: 愛旅誌
Viewing all articles
Browse latest Browse all 3692

如何在WordPress啟動Debug偵錯模式找到出錯原因?

$
0
0
架站實務 -

WordPress網站在進行系統核心程式、布景主題或外掛更新時,偶而會出現「這個網站發生重大問題」訊息而導致網站無法正常運作,甚至有時連後台也無法登入,新手站長看起來會覺得相當可怕,此時可藉由啟動WordPress內建的偵錯系統(Debug Systems),瞭解問題出現在哪裡並加以解決。

Debug偵錯模式的基本介紹

Debug Systems為WordPress內建的偵錯系統,會將系統錯誤記載在debug.log文字檔內,協助站長逐一檢視問題在哪裡,通常系是統核心程式、布景主題與外掛之間的不相容問題,但得將預設關閉的偵錯系統啟動,才能進行系統除錯。

這個網站發生重大問題。請檢查網站管理員電子郵件收件匣以取得相關說明。

進一步瞭解WordPress中的疑難排解方式

Debug偵錯模式的啟動步驟

步驟一:找到wp-config.php組態檔

在WordPress安裝資料夾/public_html中,尋找名為「wp-config.php」的WordPress核心組態檔,找到一行「define(‘WP_DEBUG’, false);」的設定,這行設定表示Debug模式預設為未啟用。

define('WP_DEBUG', false);

步驟二:修改WP_DEBUG為啟動狀態

修改wp-config.php的組態設定,將原有「define(‘WP_DEBUG’, false);」修改為官方提供的設定值,設定啟動除錯模式,記錄錯誤訊息並先停止顯示警告畫面。

// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );

// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );

// Disable display of errors and warnings
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

// Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
define( 'SCRIPT_DEBUG', true );

步驟三:檢視debug.log的錯誤記錄

在WordPress安裝資料夾public_html/wp-content中,尋找名為「debug.log」的文字檔,打開文字檔逐一檢視錯誤的訊息,通常是布景主題、外掛造成PHP的執行錯誤。

[12-Aug-2022 14:01:51 UTC] PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes)

Debug偵錯模式的解決案例

此次出現「這個網站發生重大問題」,主要是從全面從傳統編輯器改用區塊編輯器,時常在打開或新增文章時,就會出現錯誤畫面,通常經重新整理頁面後就會解決,但還是常常會出現同樣問題。

經由啟動偵錯模式後,再次出現同樣問題時,立即檢視debug.log的記載內容,出現「PHP Fatal error: Allowed memory size of 268435456 bytes exhausted」,原來是使用區塊編輯器撰寫文章時,面臨記憶體不足的問題。

因為使用Cloudways架站,提高PHP所需記憶體上限很方便,先進伺服器(Servers)的「Setting & Packages」設定分頁,檢視「Memory Limit」預設值為256MB,看起來相當夠用,無須調整。

接著進入Cloudways的應用程式(Applications)設定畫面,檢視「Application Settings」設定分頁的「PHP FPM SETTINGS」選項,預設值為[memory_limit] = 32M,先提高為64M後,持續觀察是否夠用。

;php_admin_flag[log_errors] = on
;php_admin_value[memory_limit] = 32M
;php_admin_value[max_execution_time] = 120
;php_admin_value[date.timezone] = Asia/Taipei

此外,也可直接修改php.ini設定檔,設定整台伺服器的記憶體上限,或是調整wp-config.php設定檔,調整單一網站的記憶體上限。

// 設定一般網頁的記憶體上限
define( 'WP_MEMORY_LIMIT', '128M' );

// 設定管理後台的記憶體上限
define( 'WP_MAX_MEMORY_LIMIT', '256M' );

若是修改php.ini或wp-config.php都無法更改設定值的話,此時得直接修改PHP組態值,在/public_html/wp-includes路徑尋找default-constants.php,修改預設的記憶體限制。

// Define memory limits.
	if ( ! defined( 'WP_MEMORY_LIMIT' ) ) {
		if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
			define( 'WP_MEMORY_LIMIT', $current_limit );
		} elseif ( is_multisite() ) {
			define( 'WP_MEMORY_LIMIT', '64M' );
		} else {
			define( 'WP_MEMORY_LIMIT', '40M' );
		}
	}

	if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {
		if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
			define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
		} elseif ( -1 === $current_limit_int || $current_limit_int > 268435456 /* = 256M */ ) {
			define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
		} else {
			define( 'WP_MAX_MEMORY_LIMIT', '256M' );
		}
	}

Debug偵錯模式的外掛程式

若是執行WordPress系統程式修改不熟悉的人,建議直接安裝WP Debugging外掛程式,就可直接啟用WordPress的偵錯模式,外掛也提供檢視「debug.log」內容的功能,就可直接檢視並解決問題。


Viewing all articles
Browse latest Browse all 3692

Trending Articles