人氣 98°c

WordPress出現致命錯誤

WordPress 突然間出現了一個嚴重的錯誤信息「There has been a critical error on this website.」網站沒有做任何的設定及修改系統文件。經過一段時間排除,得出是緩存外掛(插件)的接口被網存空間商關閉了,導致 Cache Plugin 的接口無法連線,使緩存文件不能寫入系統內。

出現這個致命問題:

首先請不要心慌,讓我們一步一步排錯並解決問題。

一般都是 Plugin 壞了或 PHP 代碼錯誤。解決最快的方法就是找出錯誤所在。

01. 在WP安裝的目錄(文件夾),打開「wp-config.php」文件,將原來的 WP_Debug

找:

define( 'WP_DEBUG', false );

改:

define('WP_DEBUG', true);

提醒:問題解決後請修改為原來的設置唷!

儲存並上載文件,然後重新整理頁面。

看到以下的信息內容:

Warning: include_once(/home/xxx/public_html/wp-content/plugins/wp-super-cache/wp-cache-phase1.php): Failed to open stream: No such file or directory in /home/xxx/public_html/wp-content/advanced-cache.php on line 22

Warning: include_once(): Failed opening '/home/xxx/public_html/wp-content/plugins/wp-super-cache/wp-cache-phase1.php' for inclusion (include_path='.:/usr/local/php/lib/php') in /home/xxx/public_html/wp-content/advanced-cache.php on line 22

Fatal error: Uncaught Error: Call to a member function get() on null in /home/xxx/public_html/wp-content/object-cache.php:193 Stack trace: #0 /home/xxx/public_html/wp-includes/class-wp-textdomain-registry.php(187): wp_cache_get() #1 /home/xxx/public_html/wp-includes/class-wp-textdomain-registry.php(302): WP_Textdomain_Registry->get_language_files_from_path() #2 /home/xxx/public_html/wp-includes/class-wp-textdomain-registry.php(98): WP_Textdomain_Registry->get_path_from_lang_dir() #3 /home/xxx/public_html/wp-includes/l10n.php(1370): WP_Textdomain_Registry->get() #4 /home/xxx/public_html/wp-includes/l10n.php(1400): _load_textdomain_just_in_time() #5 /home/xxx/public_html/wp-includes/l10n.php(194): get_translations_for_domain() #6 /home/xxx/public_html/wp-includes/l10n.php(306): translate() #7 /home/xxx/public_html/wp-content/object-cache.php(2974): __() #8 /home/xxx/public_html/wp-content/object-cache.php(2940): WP_Object_Cache->show_error_and_die() #9 /home/xxx/public_html/wp-content/object-cache.php(566): WP_Object_Cache->handle_exception() #10 /home/xxx/public_html/wp-content/object-cache.php(256): WP_Object_Cache->__construct() #11 /home/xxx/public_html/wp-includes/load.php(860): wp_cache_init() #12 /home/xxx/public_html/wp-settings.php(144): wp_start_object_cache() #13 /home/xxx/public_html/wp-config.php(98): require_once('...') #14 /home/xxx/public_html/wp-load.php(50): require_once('...') #15 /home/xxx/public_html/wp-blog-header.php(13): require_once('...') #16 /home/xxx/public_html/index.php(17): require('...') #17 {main} thrown in /home/xxx/public_html/wp-content/object-cache.php on line 193

There has been a critical error on this website.

Learn more about troubleshooting WordPress.

02.1 初步斷定應該是緩存插件 Cache Plugin 所引致的問題。

02.2 打開「/wp-content」目錄,找到這兩個文件:advanced-cache.phpobject-cache.php

02.3 把這兩份文件重新命名。比如 object-cache123.php, advanced-cache123.php,然後 Save.

到這裡問題就解決了,現在管理控制台(後台)可以正常訪問了,把外掛關閉或刪除,再返回到文件管理器,把文件名字修改回來就好了。Redis Object Cache.

注意:某些外掛會自動重新產生一份新的緩存文件,例如: WP官方出的 WP Super Cache,如果你不用,也要把自動生成的 advanced-cache.php 文件一併刪除。

Warning! WP Super Cache caching was broken but has been fixed! The script advanced-cache.php could not load wp-cache-phase1.php.

The file /home/xxx/public_html/wp-content/advanced-cache.php has been recreated and WPCACHEHOME fixed in your wp-config.php. Reload to hide this message.

如果你的問題還沒有得到解決,請看以下內容。

切換到默認主題並停用故障插件:

由於沒辦法訪問 WordPress 管理後台,你需要通過 FTP 或主機商提供的線上管理文件的界面,將你當前使用的主題下載到本地電腦備份後,刪除服務器上該主題的文件夾,並確保 wp-content/themes 目錄下至少包含一款 WP 自帶的默認主題,這樣一來,如果是主題導致的錯誤,此時我們訪問 WordPress 後台網址「您的域名/wp-admin/」就可以正常登錄。

如果可能是插件導致的錯誤,我們可以在 wp-content 目錄下,將 plugins 文件夾重命名為 plugins123 等其他名稱,然後訪問 WordPress 後台網址「您的域名/wp-admin/」就可以正常登錄。

其他因由:修覆WP的嚴重錯誤

相關文章:
01. WP開啟物件緩存(對象緩存)減少數據庫負載
02. WP的imagick模組及持續物件快取(持久對象緩存)
標籤: