Đây là một lỗi hiếm gặp xảy ra khi một bản cập nhật không hoàn tất. Lỗi này thường xảy ra trong quá trình cập nhật lõi WordPress, điều này càng làm tăng thêm mức độ lo ngại. Thông báo bạn nhận được là:
“Briefly unavailable for scheduled maintenance Check back in a minute.”
Trong bài viết này, chúng ta sẽ tìm hiểu nguyên nhân gây ra lỗi này và cách giải quyết nó. Bài viết được chia thành hai phần: phần giải thích nhanh/cách khắc phục nhanh và phần phân tích chi tiết hơn dành cho những ai muốn hiểu rõ.
Contents
WordPress kích hoạt chế độ bảo trì (maintenance mode) như một biện pháp an toàn và để thông báo cho người dùng rằng trang web đang trong quá trình cập nhật. Chế độ này ngăn người dùng thực hiện các hành động như lưu dữ liệu trong khi quá trình cập nhật đang diễn ra.
Khi cập nhật hoàn tất, WordPress sẽ tự động tắt chế độ bảo trì, và trang web trở lại trạng thái bình thường. Tuy nhiên, nếu quá trình này bị gián đoạn (thường do PHP timeout), mã lệnh bị dừng, và trang web vẫn ở chế độ bảo trì vô thời hạn.
Để khắc phục, chúng ta cần hiểu cách WordPress kích hoạt chế độ bảo trì và tắt nó thủ công.
May mắn thay, việc này rất đơn giản. WordPress tạo ra một tệp tin ẩn có tên là “.maintenance” trong thư mục chính của trang web.
Đây là dotfile (tệp tin có dấu chấm đầu tiên) và thường bị ẩn trên các hệ điều hành dựa trên Unix như Linux hoặc macOS. Việc xóa tệp này có thể gặp khó khăn nếu bạn không sử dụng đúng công cụ, vì nó không hiển thị trong danh sách tệp thông thường.
Phương pháp 1: sử dụng FTP
Nếu bạn sử dụng một chương trình FTP để xem các tệp từ xa, bạn có thể bật tùy chọn hiển thị tệp ẩn (view hidden files). Tùy chọn này thường nằm trong menu view của chương trình. Nếu không tìm thấy, hãy tham khảo tài liệu hướng dẫn của phần mềm.
Khi bật tùy chọn này, bạn sẽ thấy tệp “.maintenance” trong danh sách. Hãy xóa nó đi để khắc phục vấn đề.
Phương pháp 2: sử dụng Terminal
Nếu bạn sử dụng kết nối SSH để truy cập máy chủ, bạn có thể xem tệp ẩn bằng lệnh:
ls -a
Khi đã tìm thấy tệp, chỉ cần chuyển đến thư mục gốc của WordPress và gõ lệnh:
rm .maintenance
Vậy là xong.
Trong hầu hết các trường hợp, chỉ cần xóa tệp này là mọi thứ trở lại bình thường. Theo WordPress Codex FAQ:
Để dừng thông báo này xuất hiện với người dùng, chỉ cần xóa tệp .maintenance. Sau đó, thực hiện lại quá trình cập nhật tự động, trong trường hợp nó chưa hoàn tất.
Nếu vẫn không khắc phục được, hoặc nếu quá trình cập nhật thất bại lần nữa, cách tốt nhất là thực hiện cập nhật thủ công. Phần Manual Update trong tài liệu Codex của WordPress sẽ hướng dẫn rất chi tiết.
Cách cập nhật thủ công
1. Tải xuống phiên bản WordPress mới nhất và giải nén nó trên máy tính của bạn.
2. Tắt tất cả plugin.
3. Dùng FTP hoặc SSH để:
- Xóa thư mục wp-admin và wp-includes trong thư mục gốc WordPress.
- Tải lên các thư mục wp-admin và wp-includes từ tệp đã giải nén.
4. Tiếp theo, tải lên tất cả các tệp trong thư mục gốc (như wp-login.php, wp-cron.php, v.v.). Bạn có thể ghi đè lên tất cả các tệp và thư mục trừ hai tệp sau:
- wp-config.php: Tệp này chứa thông tin cấu hình. Nếu ghi đè, bạn sẽ mất quyền truy cập vào cơ sở dữ liệu.
- wp-content: Thư mục này chứa các giao diện (themes) và plugin. Xóa hoặc ghi đè thư mục này có thể làm mất dữ liệu hoặc thay đổi bạn đã thực hiện.
5. Sau khi hoàn tất, WordPress có thể yêu cầu bạn cập nhật cơ sở dữ liệu, nhưng thông báo lỗi sẽ biến mất.
Tại sao lỗi này xảy ra?
Thông báo bảo trì được hiển thị khi một số điều kiện nhất định được đáp ứng. Cụ thể, WordPress kiểm tra sự tồn tại của tệp “.maintenance” và biến $upgrading trong tệp này, biến này chứa thời gian tạo tệp.
Nếu tệp được tạo trong vòng 10 phút trở lại, WordPress sẽ vào chế độ bảo trì và hiển thị thông báo lỗi. Nếu tệp tồn tại lâu hơn thời gian này, lỗi sẽ tồn tại cho đến khi bạn xóa tệp thủ công.
Bạn có thể tùy chỉnh thông báo bảo trì bằng cách thêm một tệp tên là maintenance.php vào thư mục wp-content. Nếu tệp này tồn tại, nó sẽ được hiển thị thay cho thông báo mặc định.
Quy trình cập nhật
Trong tệp wp-admin/includes/update-core.php, quy trình cập nhật được mô tả rõ ràng, bao gồm:
1. Kiểm tra tệp nén đã giải nén thành công chưa.
2. Tạo tệp .maintenance.
3. Sao chép các tệp WordPress mới lên trang web.
4. Nâng cấp WordPress lên phiên bản mới:
- Sao chép tất cả tệp ngoại trừ wp-content.
- Sao chép tệp ngôn ngữ mới vào WP_LANG_DIR.
- Sao chép các giao diện hoặc plugin mặc định mới.
5. Xóa thư mục WordPress mới.
6. Xóa tệp .maintenance.
7. Xóa các tệp cũ.
8. Loại bỏ tùy chọn update_core.
Nếu lỗi xảy ra ở bất kỳ bước nào trước bước xóa tệp .maintenance, trang web sẽ bị mắc kẹt ở chế độ bảo trì.
Kết luận
Thông báo “Briefly unavailable for scheduled maintenance Check back in a minute” có thể gây hoang mang nhưng nó là một trong những lỗi dễ khắc phục nhất trong WordPress. Nó hiếm khi gây ra vấn đề nghiêm trọng với cơ sở dữ liệu.