lee campbell DtDlVpy vvQ unsplash

WordPress 網站出現錯誤了怎麼辦?5 分鐘教你如何 Debug 找到出錯原因

最後更新時間:2020 年 9 月 23 日

這個網站發生重大問題。進一步瞭解 WordPress 中的偵錯方式

你是否也曾遭遇、或正面臨這種情況呢?明明前一天還好端端的,突然今天打開網站就變成這樣子了!

當 WordPress 網站發生錯誤時,WordPress 預設只會在前台送你這兩句話,並不會告訴你網站哪邊出錯了,他只會給你一個點進去全部都是英文的連結。

這個網站發生重大問題。 進一步瞭解 WordPress 中的偵錯方式

我第一次看到時也是傻眼,因為這個連結點進去的內容,對不懂程式碼的新手站長來說,基本上是完全看不懂的。

但其實,這個連結介紹的方式就是 WordPress 最正確的 debug 方法。

因此接下來,我將一步步地帶領你,如何透過 WordPress 內建的 debug.log 功能,為你的網站進行基礎除錯。

在進行以下方法之前,建議可以先參考這篇:

你的 WordPress 網站正常嗎?1 個步驟馬上為網站進行健康檢查

什麼是 debug.log?

debug.log 是一個 WordPress 提供的內建除錯功能,功能非常簡單卻很強大,它會告訴你究竟錯誤是發生在哪裡,讓你不再像大海撈針般地尋找問題。

但它預設是關閉的,因此,我們必須透過幾個簡單的步驟去把它開啟。

接下來會分成兩種情況,你可以依照你遇到的狀況選擇哪一種做法:

  1. 可以進入後台 ( 使用外掛解決 )
  2. 無法進入後台 ( 存取主機檔案 )

可以進入後台

安裝 WP Debugging 外掛

如果你的錯誤只發生於前台,後台還可以進入的話,我們可以透過一個叫做 WP Debugging 的外掛進行偵錯。

WordPress debug

前往 WordPress 後台,安裝並啟用 WP Debugging 外掛。

2020 06 09 11 52 53

啟用之後,可以在 WordPress 左側後台工具列中的「工具」中找到 WP Debugging

2020 06 09 11 53 25

這邊可以把 3 個都打勾,方便偵錯。

2020 06 09 11 53 50

設置完成後,可以在最上方的黑框找到 Debug Quick Look,點選 View File

2020 06 09 11 54 23

點選完 View File 之後,即可看到你的 WordPress 問題出在哪邊,接著可以將錯誤複製貼上至 Google 搜尋,通常都可以找到解答。

2020 06 09 12 07 17

使用完畢後,請將外掛取消勾選並刪除,不要常駐開著,等有遇到問題才打開比較安全。

除此之外,也建議可以清一下瀏覽器快取,確認是否完全修復。

無法進入後台

如果今天你連後台都無法進入時,就無法使用外掛的作法,必須存取主機的檔案啟用 debug.log。

在啟用 debug.log 之前,我們還有一些前置作業要設定,如果你已經懂得用 FTP 存取 WordPress 之中的檔案的話可以跳過這部分。

Cloudways ( VPS主機 ) 的用戶

如果你的主機是 Cloudways 或 Linode 等 VPS 主機,會比較複雜一點,這部分我們會用到 Visual Studio Code 這個程式碼編輯器透過 sftp 進行遠端修改,所以如果你的電腦裡面沒有這個軟體的話,要請你先去下載了。

並且參考下面這篇貼文,會教導你如何透過 sftp 進行遠端修改 WordPress 檔案。

延伸閱讀:如何修改 WordPress 內部檔案?5 分鐘教你透過 SFTP 遠端修改!

Siteground ( 虛擬主機 ) 的用戶

如果你的主機是 Siteground, Bluehost, Godaddy 等虛擬主機,那會比較簡單一點,你只需要透過主機商提供給你的 cPanel 中的 File Manager 便可以輕鬆編輯 WordPress 檔案中的內容。

2020 05 02 11 51 12

找到 cPanel 中的 File Manager

2020 05 02 11 52 25

點選之後按確認

2020 05 02 11 54 27

進來之後只要對你想要修改的檔案按下右鍵,並點選 ” Edit ” 即可編輯

啟用 debug.log

前置作業完成後,接下來我們就可以開始啟用 debug.log 進行除錯。

如果你是用我教的 sftp 做法的話,在點選 public_html 之後,要點選 . 這個選項,代表進入目前的資料夾 ( 也就是 public_html )。

2020 05 17 19 27 36

首先,我們先到 WordPress 根目錄 ( 通常會叫 public_html ) 中的 wp-config.php 檔案,找到這一行:

define( 'WP_DEBUG', false );
2020 05 17 19 40 14

將其刪除後,複製貼上下面這串程式碼並儲存 ( ctrl + s ):

// 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 );

接下來回到出問題的網站,利用重新整理刷新你網站上遭遇的 Bug 後,再前往 WordPress 根目錄的資料夾 wp-content 中,你會發現,多了一個檔案叫做debug.log,而這個檔案會告訴你你的網站錯誤的詳細資訊。

2020 05 17 19 42 14

同理,前往 wp-content 時,也要點選 . 才會看到debug.log

2020 05 17 19 31 33
2020 05 17 19 45 47

以我最近遇到的一個 Bug 為例,不知道為什麼有時候網頁會顯示 WordPress 發生重大錯誤訊息,但是有時候卻又很正常,相當反常,不像一般出 Bug 都是整個網站掛掉。

所以我去檢查我的 debug.log,發現了下面這一行:

[26-Apr-2020 07:51:02 UTC] PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 36864 bytes) in /home/394934.cloudwaysapps.com/cbzmpmhrjg/public_html/wp-includes/wp-db.php on line 1989

這一段警告訊息主要是說,你主機所給這一個 WordPress 站台所提供的記憶體不夠,大概只有 37 MB,但是它實際上需要大概 135 MB 才夠。

知道了問題在哪邊就好解決了,以我的主機 Cloudways 為例,我直接前往 Application -> 選擇出問題的 app -> Apliication Settings -> PHP FPM Settings。

並將原本預設

;php_admin_value[memory_limit] = 32M

修改成

php_admin_value[memory_limit] = 150M
cloudways php setting

在這邊要注意,進行修改後要記得把前面的 ” ; ” 半形符號去掉,這段用意 Cloudways 是說有著半形符號代表是預設的前綴,如果要自己修改東西就得把半形符號 ” ; ” 去掉。

fixed bug

修改完之後網站遇到的問題就解決了,順利正常運行!

結語

基本上 95 % 以上的問題都可以透過這招解決,如果你還是不知道怎麼解決,你可以拿你取得的 debug.log 的資訊,去問你的主機商,或是在 WordPress 社團發文請教其它大神。

因為網站掛掉的原因有千百種,有時候可能只是一個句子結尾沒有加分號都會導致掛掉,因此先取得 debug.log 的資訊再去尋求協助,大家會比較好幫助你唷!

參考資料:
Debugging in WordPress
WordPress除錯 – error_log()

額外資訊

獲得更多 WordPress 最新資訊

我目前正在製作一部 WordPress 網站的線上課程,主要內容會是教你如何從完全不懂程式碼的新手,透過學習架設 WordPress 網站與 SEO,打造出一個在一年內能為你帶來 100 萬收入的個人網站。如果你有興趣的話,歡迎填寫下方的訂閱表單,我將會告訴你最新的開課資訊。

加入 FB 討論社團

另外,我最近 ( 2020/06/14 ) 開設了一個 Facebook 社團,叫做「WordPress 網站架設 | 網路賺錢 | 部落格經營 – WebLai 交流區」,社團中討論的主題主要會是關於 WordPress 網站架設部落格經營、以及網路賺錢

如果你也對這些內容有興趣的話,歡迎你點擊下方的連結進行加入,我將會在那邊發佈一些這些主題的相關議題與討論,當然,對於 WordPress 有問題的話也可以直接在裡面詢問我唷!

你可能會想看

網路賺錢
部落格經營
基礎教學
站長必學
網站行銷
疑難雜症
進階技巧
Elementor
Woocommerce
學習資源

這篇文章有 4 則留言:

  1. [28-Apr-2020 14:50:22 UTC] PHP Warning: require_once(/home/ptv3zo2jh7km/public_html/wp-includes/class-wp-object-cache.php): failed to open stream: No such file or directory in /home/ptv3zo2jh7km/public_html/wp-includes/cache.php on line 12
    [28-Apr-2020 14:50:22 UTC] PHP Fatal error: require_once(): Failed opening required ‘/home/ptv3zo2jh7km/public_html/wp-includes/class-wp-object-cache.php’ (include_path=’.:/opt/alt/php72/usr/share/pear’) in /home/ptv3zo2jh7km/public_html/wp-includes/cache.php on line 12

    您好,不好意思,WordPress網站掛掉已經一個多禮拜了,掛掉的原因我想應該是我更新了某個外掛,大大您的教學很淺顯易懂,到最後的debug.log部分,我的資訊如上,不知道有無處理方式,目前一下子找不到人詢問,希望可以幫個忙,謝謝!

    1. 我是wordpress的使用者,我使用GoDaddy的網域加上google cloud的虛擬主機,我想知道本文章節3.2 如何我要如何找到我伺服器的cPanel去拿到file manager裡的資料?

留言回應

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Scroll to Top