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

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

最後更新時間:2020 年 12 月 8 日

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

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

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

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

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

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

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

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

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

什麼是 debug.log?

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

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

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

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

可以進入後台

安裝 WP Debugging 外掛

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

WordPress debug

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

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

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

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

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

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

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

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

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

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

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

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

無法進入後台

如果今天你連後台都無法進入時,就無法使用外掛的作法,必須存取主機的檔案啟用 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 檔案中的內容。

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

找到 cPanel 中的 File Manager

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

點選之後按確認

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

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

啟用 debug.log

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

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

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

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

define( 'WP_DEBUG', false );
WordPress 網站出現錯誤了怎麼辦?5 分鐘教你如何 Debug 找到出錯原因 | 13

將其刪除後,複製貼上下面這串程式碼並儲存 ( 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,而這個檔案會告訴你你的網站錯誤的詳細資訊。

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

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

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

以我最近遇到的一個 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 網站與 SEO,打造出一個在一年內能為你帶來 100 萬收入的個人網站。如果你有興趣的話,歡迎填寫下方的訂閱表單,我將會告訴你最新的開課資訊。

加入 FB 討論社團

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

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

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

這篇文章有 9 則留言:

  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裡的資料?

  2. 您好,文科新手的我,利用XAMPP練習架設網站。但是,安裝新主題完後,WORDPRESS控制台就出現->
    Fatal error: Uncaught ArgumentCountError: array_merge() does not accept unknown named parameters in C:\xampp\htdocs\wordpress\wp-includes\widgets.php:1265 Stack trace: #0 C:\xampp\htdocs\wordpress\wp-includes\widgets.php(1265): array_merge(wp_inactive_widgets: Array, sidebar-1: Array, sidebar-footer: Array, sidebar-header: Array, sidebar-masthead: Array) #1 C:\xampp\htdocs\wordpress\wp-includes\widgets.php(1220): retrieve_widgets(true) #2 C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(289): _wp_sidebars_changed(‘Twenty Twenty’) #3 C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(311): WP_Hook->apply_filters(NULL, Array) #4 C:\xampp\htdocs\wordpress\wp-includes\plugin.php(478): WP_Hook->do_action(Array) #5 C:\xampp\htdocs\wordpress\wp-includes\theme.php(3267): do_action(‘after_switch_th…’, ‘Twenty Twenty’, Object(WP_Theme)) #6 C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(287): check_theme_switched(”) #7 C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php(311): WP_Hook->apply_filters(NULL, Array) #8 C:\xampp\htdocs\wordpress\wp-includes\plugin.php(478): WP_Hook->do_action(Array) #9 C:\xampp\htdocs\wordpress\wp-settings.php(546): do_action(‘init’) #10 C:\xampp\htdocs\wordpress\wp-config.php(90): require_once(‘C:\\xampp\\htdocs…’) #11 C:\xampp\htdocs\wordpress\wp-load.php(37): require_once(‘C:\\xampp\\htdocs…’) #12 C:\xampp\htdocs\wordpress\wp-blog-header.php(13): require_once(‘C:\\xampp\\htdocs…’) #13 C:\xampp\htdocs\wordpress\index.php(17): require(‘C:\\xampp\\htdocs…’) #14 {main} thrown in C:\xampp\htdocs\wordpress\wp-includes\widgets.php on line 1265

    XAMPP的伺服器(127.0.0.1)可以進去,但127.0.0.1/wopdpress就進不去了。請問,是要如何解決?? 感謝回答

  3. Dear Web,
    您好,您的網站讓我受益良多,我是一個經營WP快2個月的初學者,有一個wp的問題不知道方不方便諮詢您。
    在好不容易過了Google Adsense的審核後,就一直出現”你必須修正ads.txt問題”的警示,我爬了好多網站做過功課,下載了Ad Inserter, Advance AD等各種外掛,照著指示將TXT的內容複製貼上,但還是一直沒有解決。
    這個問題困擾我好久,不知道有沒有其他原因造成這樣的結果。
    謝謝您,期待您的回覆 : )

  4. 你好 我根據你的方式把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 );
    但是之後卻”出現這個網站發生重大問題。請檢查網站管理員電子郵件收件匣以取得相關說明。

    進一步瞭解 WordPress 中的偵錯方式”
    然後整個網頁都掛了。。。。我可以怎麼辨。。。謝謝

留言回應

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

回到頂端