Website ngừng hoạt động và chỉ hiển thị thông báo “There has been a critical error on this website” thì phải xử lý như thế nào? Lí do phổ biến là xung đột plugin. Cùng kiểm tra nhé!
Một số keyword
phpMyAdmin
_options
active_plugin
a:0:{}
Critical Error là một lỗi nghiêm trọng. Nó không chỉ gây gián đoạn truy cập vào website của bạn mà còn ảnh hưởng đến SEO và trải nghiệm người dùng.
Cảm giác hoang mang, sốt ruột càng mạnh mẽ hơn khi bạn không thể truy cập vào bảng điều khiển quản trị (Administration Panel, hay còn gọi là Dashboard).
Trước khi chữa bệnh cần phải bắt được bệnh, hãy cùng điểm mặt các nguyên nhân gây ra lỗi này.
Nguyên nhân gây lỗi Critical Error
Xung đột plugin là nguyên nhân phổ biến gây ra lỗi Critical Error.
Plugin (gói mở rộng) được bạn cài đặt vào website WordPress để bổ sung các chức năng, tiện ích cụ thể.
Về bản chất, plugin giống như phòng ban thuê ngoài của công ty. Khi hai hoặc nhiều phòng ban phối hợp không tốt, chồng chéo về nhiệm vụ hay tranh giành tài nguyên thì dễ xảy ra xung đột. Tương tự, các plugin cũng có thể xung đột với nhau. Thậm chí, chúng có thể tự gây lỗi do xung đột với hệ thống (phiên bản WordPress, PHP, theme…)
Một thống kê nho nhỏ về lỗi Critical Error trên các website do mình trực tiếp xây dựng và quản trị (bao gồm website của khách hàng):
- 99% xảy ra do xung đột plugin.
- 1% xảy ra do các vấn đề còn lại.
Thật ra, 10/10 trường hợp lỗi Critical Error mà mình từng gặp xảy ra do xung đột plugin. Nhưng đây không phải là lí do duy nhất, vẫn còn rất nhiều vấn đề khác.
Cách khắc phục lỗi Critical Error
Khi gặp lỗi Critical Error, mình có xu hướng “chữa trị ngay” bằng cách ngừng kích hoạt tất cả plugin và bật lại từng cái một. Hành động này giúp:
- Loại bỏ ngay lập tức mã nguồn bị lỗi ra khỏi chuỗi thực thi của WordPress (website sẽ được trả về trạng thái sơ khai).
- Khôi phục quyền truy cập bảng điều khiển Vordpress ngay lặp tức, bạn có thể đăng nhập vào Dashboard.
- Xác định plugin gây lỗi thông qua việc kích hoạt từng cái một. Từ đó, đưa ra phương án xử lý phù hợp như hủy kích hoạt vĩnh viễn, thay thế…
Nếu sau khi hủy kích hoạt tất cả plugin mà website vẫn không hoạt động trở lại (tức là lỗi không phải do plugin), mình mới quan tâm đến 1% khả năng còn lại như xung đột theme, phiên bản PHP, phiên bản WordPress, giới hạn bộ nhớ PHP…
Các cách xử lý xung đột plugin
Như đã đề cập ở trên, khi website gặp lỗi Critical Error, bạn thường không đăng nhập được vào Dashboard (wp-admin). Vì thế, chúng ta sẽ chuyển hướng thao tác lên hosting, nơi lưu trữ mọi tệp tin liên quan đến website của bạn. Có khá nhiều phương án:
- Phương án 1: Đổi tên thư mục plugins qua FTP/FSTP
- Phương án 2: Đổi tên thư mục plugins trong File Manager
- Phương án 3: Hủy kích hoạt tất cả các plugin qua phpMyAdmin
Trong bài viết này, mình chỉ tập trung giới thiệu phương án 2 và 3. Mình chủ yếu sử dụng phương án 3. Khi và chỉ khi không thể truy cập, tìm thấy phpMyAdmin, mình mới sử dụng phương án 2. Đây chỉ là thói quen làm việc vì mình không thoải mái khi đổi tên bất kỳ một thư mục nào trên một hệ thống đã được đưa vào hoạt động.
Xử lý xung đột plugin qua phpMyAdmin
Mình luôn ưu tiên và thoải mái hơn với phương án này vì:
- Ngừng kích hoạt tất cả plugin
- Đảm bảo toàn vẹn dữ liệu, không đổi tên thư mục hay xóa bất kỳ file nào
Cần lưu ý rằng, ở phương án này bạn sẽ thao tác trực tiếp trên cơ sở dữ liệu (database) của trang web. Do đó, bạn cần đảm bảo thao tác chính xác. Bất kỳ một nhầm lẫn hoặc sai sót nào cũng mang đến rủi ro. Nhưng đừng quá lo lắng, bạn chỉ cần mở đúng tệp, dán nội dung vào đúng vị trí là được.
Bước 1: Truy cập vào phpMyAdmin
Mình sẽ thực hiện trên cả Hawkhost, Ultahost, Dreamhost và cPanel.
Truy cập phpMyAdmin trên Hawkhost
- Đăng nhập vào Client Area.
- Chọn gói dịch vụ
- Tại mục One Click Login, chọn phpMyAdmin

Truy cập phpMyAdmin trên Ultahost
Thực hiện các bước như Hawkhost mình đã giới thiệu ở trên. Bởi vì, giao diện người dùng của Ultahost và Hawlhost tương tự nhau.
Truy cập vào phpMyAdmin trên Dreamhost
- Đăng nhập vào tài khoản
- Tại mục Websites, nhấn chọn mySQL Databases
- Tại bảng Hostnames for this MySQL server, cột Hostname (these are interchangeable), tìm dòng tươn ứng với website đang gặp sự cố, nhấn chọn phpMyAdmin

Truy cập vào phpMyAdmin qua cPanel
cPanel là bảng điều khiển quản trị với đồ họa trực quan với mức độ chuẩn hóa cao, giúp bạn dễ dàng quản lý toàn bộ dịch vụ lưu trữ website. Vị trí và cách thức tương tác với các công cụ là giống nhau trên mọi hosting có sử dụng cPanel.
Trên Hawkhost và Ultahost, bạn có thể tìm thấy cPanel ở mục One Click Login.
Bạn có thể truy cập phpMyAdmin từ cPanel qua 2 cách:
Cách 1: Tại mục Softwares, chọn WordPress Manager by Softaculous. Tại Softaculous, bạn sẽ thấy danh sách các website đã tạo, nhấn biểu tượng mũi tên để mở rộng nội dung. Bạn có thể nhấn vào nút View Database để được chuyển hướng sang phpMyAdmin hoặc nhấn vào biểu tượng dấu cộng để xem tên cơ sở dữ liệu.
Cách 2: Tại mục Scripts, chọn WordPress. Lúc này, bạn sẽ được chuyển hướng sang Softaculous. Tại bảng điều khiển này, bạn sẽ nhìn thấy danh sách các website đã tạo. Nhấn vào biểu tượng WordPress (Manage your installation with WordPress Manager) để xem chi tiết cài đặt website. Sau đó, nhấn nút View Database để được chuyển hướng sang phpMyAdmin hoặc nhấn vào biểu tượng dấu cộng để xem tên cơ sở dữ liệu.
Bạn đã truy cập được vào phpMyAdmin, hãy chuyển sang bước 2.
Bước 2: Cập nhật giá trị mới trong bảng _options
- Mở rộng database và tìm mục “abc_options”. Trong đó, abc có thể là một chuỗi ký tự nào đó. Mở thư mục này.
- Tại cột option_name, tìm trường thông tin tên active_plugin. Để tìm nhanh hơn, bạn có thể dùng công cụ search.
- Tại dòng active_plugin, nhấn edit.
- Thay thế chuỗi ký tự dài, chứa tên của các plugin đang được kích hoạt trên webite tại ô option value bằng a:0:{} và nhấn nút go.
Đừng lo lắng, thay đổi này chỉ hủy kích hoạt tất cả plugin, không ảnh hưởng đến các cài đặt, cấu hình và dữ liệu liên quan.
a:0:{} là một chuỗi ký tự đại diện cho mảng rỗng, không chứa bất kỳ phần tử nào. Trong đó, a là viết tắt của array (mảng). Số “0” thể hiện không có phần tử nào trong mảng đó. {} đại diện cho nội dung của mảng (ở đây là rỗng).

Bước 3: Đăng nhập vào Dashboard và kích hoạt từng plugin một
Sau khi hoàn thành bước 2, nếu bạn có thể đăng nhập lại vào bảng điều khiển Dashboard thì chúc mừng, bạn rơi vào 99% trường hợp thường gặp (nghĩa là lỗi Critical Error xảy ra do xung đột plugin).
Lúc này, hãy kích hoạt lại từng plugin một, bắt đầu từ page builder (như Elementor, Beaver Builder, Divi Builder) và tải lại website để kiểm tra xem lỗi Critical Error có xuất hiện lại không. Nếu lỗi không xuất hiện lại, nghĩa là đó chỉ là một xung đột tạm thời.
Nếu lỗi tái xuất hiện sau khi kích hoạt một plugin cụ thể thì đó chính là thủ phạm gây xung đột. Bạn có thể đánh giá mức độ quan trọng của plugin đó để quyết định:
- Ngừng kích hoạt plugin đó
- Thay thế plugin đó
- Liên hệ với đơn vị phát triển
Thông thường, mình sẽ làm thêm một bước: Lần lượt kích hoạt plugin gây lỗi và một plugin khác và tải lại trang để kiểm tra. Đôi khi, lỗi xảy ra khi hai plugin cùng hoạt động.
Xử lý xung đột plugin qua File Manager
Nếu hosting của bạn có cPanel, hủy kích hoạt tất cả plugin qua File Manager có thể sẽ là một cách nhanh chóng và đơn giản hơn.
Bước 1: Đăng nhập vào cPanel
Bước 2: Trong mục files, chọn công cụ File Manager
Bước 3: Trong File Manager, tìm mở thư mục wp_contents (có thể trong có thể là tên miền của bạn hoặc public_html)
Bước 4: Trong thư mục wp_contents, nhấp chuột phải tại thư mục Plugins và đổi tên sang Plugins_1 (hoặc bất kỳ một tên nào khác).
Sau bước này, bạn đã có thể truy cập vào Dashboard nhưng thư mục Plugins hoàn toàn rỗng.

Bước 5: Trong thư mục wp_contents, đổi thư mục Plugins_1 trở về tên cũ (Plugins).
Khi tải lại Dashboard, bạn đã có thể thấy lại danh sách các plugin ở trạng thái chưa được kích hoạt. Thực hiện kích hoạt lại từng plugin một kết hợp tải lại website để phát hiện plugin gây lỗi.
Luôn giữ bình tĩnh
Lúc thử nghiệm bỏ kích hoại tất cả plugin trên website thông qua File Manager, sau khi hoàn thành bước 4 và tải lại Dashboard, mình khá hoang mang vì danh sách plugin trống trơn. Thậm chí, mình còn nghĩ đến khả năng mất trắng các cài đặt, tùy chỉnh mà mình đã dày công thực hiện. Đó sẽ là một sự hụt hẫng khủng khiếp, dù chỉ mới tưởng tượng.
May mắn có chút “nghề”, mình thực hiện bước 5 và tất cả plugin hiển thị trở lại. Lúc này, mình mới thở phào nhẹ nhõm.
Qua câu chuyện của mình, xin được nhấn mạnh rằng, bình tĩnh chính là chìa khóa trong xử lý lỗi. Càng vội vã thì càng dễ sai sót. Thật ra mình cũng có xu hướng dễ nổi nóng khi không thể đưa website hoạt động trở lại sau một loạt các thao tác. Nhưng tức giận không giải quyết được vấn đề. Đặc biệt là trong lĩnh vực lập trình.
Trên đây là đúc kết kinh nghiệm của bản thân mình trong xử lý lỗi Critical Error do xung đột plugin. Nguyên nhân chính để mình viết bài này là do không thể nhớ nổi chuỗi a.0:{}. Có thể, chính bản thân mình cũng cần phải xem lại bài viết này nhiều lần.