最後更新時間: 2021/4/20
如果我們去醫院或診所看診,看診的醫生向我們詢問問題時,我們都會盡量據實以告,好讓醫生判斷病情。同樣的道理,如果想知道 WordPress 自架站發生問題的原因,那 WordPress 在伺服器上的執行記錄就是查找原因的重要依據。
因為網站不會自己說話,但是它的事件記錄會說話。
外掛用途說明
WordPress 自架站建置完畢後,依照預設,核心程式並未啟用記錄執行事件的功能,這點檢閱 wp-config.php[1] 內容後可以清楚得知。
在 wp-config.php 中,WP_DEBUG 這個常數的值預設為 false,代表 WordPress 不會自動記錄網站相關事件。
當網站管理員將這個常數的值從 false 變更為為 true,WordPress 便會將記錄檔儲存於 wp-content/debug.log;除非網站管理員將檔案下載回來或進入主機查看,否則也沒有任何可以直接查看記錄檔的方式。
Error Log Monitor 這款外掛,可以在 [控制台] 首頁提供可以檢視 WordPress 記錄檔的控制台小工具,並且提供更多細項設定,讓網站管理員可以更加掌握網站事件資訊。
例如在完成 Error Log Monitor 外掛的設定後,便可以在 WordPress 控制台首頁直接檢視事件記錄。
要使用外掛,必須先完成外掛的安裝與啟用。
外掛使用方式
Error Log Monitor 啟用後並無法直接開始啟用 WordPress 的記錄功能,需要修改及新增 WordPress 的 wp-config.php 檔案的內容。如果不做出對應的檔案內容變更,Error Log Monitor 就只會顯示如下圖中的提示訊息。
修改 wp-config.php 檔案的內容前,務必先備份檔案。
修改 wp-config.php 的方式
依據每個網站管理員能力的不同以及租用的主機類型的不同,取得 wp-config.php 檔案進行修改或新增內容的方式大致上會有以下 3 種。
- 共用主機:使用共用主機服務提供商提供的主機控制面板[2],這類控制面板中都會有檔案管理員功能。網站管理員可以透過這類功能下載 wp-config.php 檔案,修改完畢之後再上傳並覆蓋舊版本檔案。當然,共用主機的檔案管理功能多半可以直接修改檔案內容,但對於多數人來說,直接修改檔案內容風險比較高。
- VPS 主機或雲端計算主機:想必有能力駕馭 VPS 主機或雲端計算主機的網站管理員,直接進入主機透過命令列修改檔案內容不是問題,無論是要使用 vi、vim 或 nano,只要使用起來順手的程式,都可以用來修改檔案內容。
- FTP:這是最通用的方式。只要網站主機有開放 FTP 通訊協定存取網站資料,便可透過 FTP 先下載 wp-config.php 檔案,修改完畢之後再上傳並覆蓋舊版本檔案[3]。
修改 wp-config.php 的內容
取得 wp-config.php 檔案並完成備份後,便可開始使用慣用的文字編輯器進行修改。
首先,先以文字編輯器開啟,然後在 wp-config.php 中找到以下常數。
define('WP_DEBUG', false);
然後取代為以下常數:
@ini_set('log_errors', 'On');
@ini_set('error_log', '記錄檔的完整路徑');
//記錄全部類型事件
define('WP_DEBUG', true);
//不在網站前端顯示錯誤碼
define('WP_DEBUG_DISPLAY', false);
- 第 1 行:外掛啟用記錄事件功能。
- 第 2 行:指定事件記錄檔的檔案完整路徑。這個有額外需要注意的事項,下面會繼續詳解。
- 第 4 行:WordPress 核心程式啟用記錄事件功能。
- 第 6 行:依照預設,只要網站因錯誤產生錯誤碼,就會出現在網站前端,這個常數及其設定值可以讓錯誤碼不再出現於網站前端。
除了第 2 行的記錄檔完整路徑會每個網站都不相同之外,其他 3 行請直接套用,不需修改。
取得網站記錄檔完整路徑
在取得網站記錄檔完整路徑前,請先瞭解兩件事。
- WordPress 核心程式啟用事件記錄功能後,預設的記錄檔位置為 wp-content/debug.log,這個前面曾經提過。
- WordPress 新版核心程式的 [網站狀態] 功能,會建議不要將網站事件記錄檔儲存於網站根目錄及其子目錄的任何位置,因為將記錄檔儲存在網站目錄中,是最容易暴露記錄檔的方式。
基於以上兩點,加上網站的檔案完整位置每個網站均不相同,以下便以阿力獅的測試網站為例,說明一下如何取得記錄檔案的完整路徑。
首先,Error Log Monitor 外掛會偵測並提示目前網站的根目錄。以阿力獅的測試網站為例,網站根目錄如下。
/home/sites/8a/6/6dbeb06fba/wwwalexliondev
由於記錄檔不建議放在網站根目錄及其子目錄中,所以我們改放在與網站根目錄同一層的自建目錄。
網站根目錄的上一層目錄如下。
/home/sites/8a/6/6dbeb06fba
阿力獅要在這層目錄下建立一個與網站根目錄同一階層的目錄 wp-error-log-files,便透過 FTP 方式建立新目錄。
請注意,無論主機類型為何,主機的作業系統多半都是 Linux 的各種發行版本,而 Linux 作業系統的檔案名稱、資料夾名稱及路徑,是區分大小寫的。
這個新目錄的完整路徑如下。
/home/sites/8a/6/6dbeb06fba/wp-error-log-files
新目錄建立完畢後,阿力獅進入目錄中建立一個名為 alexlion-dev-error.log 的空檔案作為記錄檔。建立新檔案的方式與建立新目錄的方式只差在需要點擊的是 [建立新檔案]。
大功告成!這個網站的記錄檔完整路徑如下。
/home/sites/8a/6/6dbeb06fba/wp-error-log-files/alexlion-dev-error.log
請依照以上的思路,為自己的網站建立空白記錄檔[4],並在取得記錄檔的完整路徑後,將這個值填寫至正確的常數中。以阿力獅的測試網站為例,第 2 行的正確設定如下。
@ini_set('error_log', '/home/sites/8a/6/6dbeb06fba/wp-error-log-files/alexlion-dev-error.log');
完成 wp-config.php 檔案必要的修改,並以新版本覆蓋舊版本後[5],接著重新整理網站管理後台頁面,便會發現外掛原本的提示訊息均已消失,這代表 Error Log Monitor 開始正確執行。
外掛使用注意事項
Error Log Monitor 這個外掛只要做完上述設定,便可正確執行開始記錄網站上的相關記錄,但它仍有幾項設定值得留意。
首先,Error Log Monitor 開始記錄網站事件後,預設值是記錄全部類型的事件,所以事件記錄檔案的大小便會開始增長。外掛在控制台的小工具底部,有一個 [清除記錄] 按鈕,它的功能真的會將事件記錄檔內的內容全部清除。
如需為 Error Log Monitor 進行設定,請將游標[6]移至外掛的控制台小工具標題處,便會出現 [設定] 連結。
外掛設定請參照需求設定,以下設定值均為阿力獅的個人偏好。
- 錯誤項目顯示數量:預設值為 20,阿力獅都改為 10;一來是 20 太多,佔掉太多畫面空間,二來是出錯通常都先看最新的錯誤,需要更多記錄時也只要去把記錄檔開啟就看的到,因此沒有設定得很高。
- 反向排序,最新的在最上方:就是將原本依照發生時間舊到新升冪排序的事件記錄,改為依照發生時間新到舊的降冪排序。這是因為大多數的時候,網站當下發生的錯誤,通常由較新的事件所觸發。
- 接收定期錯誤記錄的電子郵件地址:如果想要外掛將事件記錄以電子郵件方式傳送給指定人員[7],這裡可以依照需求設定要接收資訊的電子郵件地址。請注意,請確定網站具備正常的寄件能力,外掛只負責符合條件時要求寄件,這個外掛本身沒有寄件功能。
- [檢查新訊息記錄的頻率] 及 [傳送電子郵件的頻率]:請依照自己的需求設定這兩項時間頻率。此外,這兩項頻率設定也與下方的 [電子郵件通知篩選條件] 設定互相配合,符合篩選條件才會寄送電子郵件。
- 記錄檔大小限制:只要有發生事件,系統便會如實記錄,因此記錄檔自然會越來越大。這設定是設定記錄檔到了多大實際送電子郵件通知指定人員,而不是限定記錄檔只能多大。
- 控制台小工具篩選條件:預設值是顯示全部類型的事件記錄。隨著你對這些記錄的瞭解,可以把不需要在小工具內直接檢視的記錄篩選掉。請注意,篩選掉的記錄僅是不顯示在控制台,實際上還是記錄在事件記錄檔中。
- 電子郵件通知篩選條件:預設值是 [與控制台小工具相同],也就是 [控制台小工具篩選條件] 裡設定是什麼,只要發生就傳送電子郵件。這項設定可以自訂,例如只有發生系統判定為 Error 的事件才傳送電子郵件通知。
此外,既然事件記錄檔案的位置可以自訂,那同一台伺服器上的全部 WordPress 網站自然可以設定成使用同一個記錄檔;這的確可行,但千萬不要這麼做,保證會出現很多不必要的困擾。
凡走過必留下痕跡,網站執行時所發生的各項事件,網站管理員也該留下必要的記錄,而非空無一物,無跡可查。
如果連最基本的網站事件記錄都不留下,就算對網站架構不甚理解而需要找人幫忙,來協助的人在無跡可循的狀況下,也只能先重複上述過程,讓網站繼續執行出錯進行記錄,不然光靠通靈及瞎子摸象,都是在消耗彼此的陰德而已。在平常不進行網站事件記錄的情況下,要將網站錯誤處理至正常,便會需要花費更多的時間。正因為如此,平日就讓網站開始進行記錄,實屬網站完成建置後的頭等大事。
所以,現在就去為 WordPress 網站啟用事件記錄功能吧。
外掛狀態
WordPress 外掛 | |
---|---|
外掛名稱 | Error Log Monitor |
外掛網址 | WordPress.org 上的 Error Log Monitor |
開發者官方網站 | W-Shadow |
外掛價格 | 免費 |
繁體中文本地化作者 | 繁體中文本地化由《阿力獅的教室》站長阿力獅提供。 |
繁體中文本地化狀態 | 已發佈,目前透過 WordPress 內建機制更新,無須自行下載檔案。 |
譯文問題回報 | 如果發現譯文有錯譯、錯字,或是因為外掛更新之後產生新字串未譯,都歡迎在下方留言。 |
附註
1⇧ | wp-config.php 是 WordPress 的重要檔案,內容為網站與伺服器間的重要組態及設定,例如網站資料庫主機名稱為何,資料庫使用者的帳號及密碼等重要資訊。 |
---|---|
2⇧ | 常見且知名的共用主機控制面板有 cPanel 及 Plesk,本來是兩家不同廠商的產品,透過併購,這兩個主機管理面板已屬於同一家公司。 |
3⇧ | 阿力獅慣用的 FTP 用戶端軟體是開源且免費的 FileZilla,在本站講到使用 FTP 進行某些操作,一律使用 FileZilla 示範。 |
4⇧ | 共享主機管理面板的檔案管理員也可以指定檔案名稱建立空檔案,VPS 主機或雲端計算主機,也可以透過指令建立指定檔案名稱的空白記錄檔。 |
5⇧ | wp-config.php 檔案如何取得,就可以用同一個方式以新版檔案覆蓋舊版檔案。 |
6⇧ | 常態性的網站管理工作,建議還是使用螢幕較大的桌面裝置進行。 |
7⇧ | 接收事件記錄的人員可以不是網站管理員。 |