Giới thiệu
Trong quá trình xây dựng website nhanthang.com trên nền tảng WordPress chạy trên Synology NAS sử dụng Web Station (Nginx + PHP 8.0), tôi gặp một lỗi khá khó chịu.
Website vẫn hoạt động bình thường, tuy nhiên các tính năng quan trọng của WordPress lần lượt phát sinh lỗi như:
- Không lưu được Page hoặc Post trong Gutenberg.
- Xuất hiện thông báo:
Updating failed.
The response is not a valid JSON response.
- Đường dẫn Pretty Permalink (Post name) báo lỗi 404.
- REST API (
/wp-json/) trả về 404 Not Found. - Chỉ khi chuyển Permalink sang Plain thì website mới hoạt động bình thường.
Điều đáng nói là lỗi này không xuất hiện ngay từ đầu mà phát sinh sau một thời gian sử dụng, khiến việc xác định nguyên nhân trở nên khá mất thời gian.
Sau nhiều bước kiểm tra, cuối cùng tôi đã tìm ra nguyên nhân và cách khắc phục.
Môi trường triển khai
- Synology NAS
- DSM 7.x
- Web Station
- Nginx Backend
- PHP 8.0
- MariaDB
- WordPress 6.x
- Theme GeneratePress
Triệu chứng
Website vẫn truy cập được.
Trang chủ hoạt động bình thường.
Tuy nhiên khi vào WordPress Admin sẽ gặp các hiện tượng sau:
Không lưu được Page hoặc Post
Updating failed.
The response is not a valid JSON response.
Pretty Permalink báo lỗi
Ví dụ
https://nhanthang.com/gioi-thieu/
trả về
404 Not Found
Trong khi
https://nhanthang.com/?page_id=10
lại hoạt động bình thường.
REST API bị lỗi
Khi truy cập
https://nhanthang.com/wp-json/
kết quả là
404 Not Found
Các bước đã kiểm tra
Ban đầu tôi kiểm tra theo hướng WordPress.
Đã thực hiện:
- Reset Permalink
- Kiểm tra
.htaccess - Disable Plugin
- Kiểm tra Theme
- Kiểm tra Site Health
- Kiểm tra REST API
- Kiểm tra PHP
Tất cả đều không phát hiện vấn đề.
Kiểm tra cấu hình Nginx
SSH vào Synology
sudo -i
nginx -T > /tmp/nginx.txt
Tìm Virtual Host
grep -n "nhanthang" /tmp/nginx.txt
Kiểm tra cấu hình
sed -n '1510,1565p' /tmp/nginx.txt
Kết quả thu được:
server_name nhanthang.com;
root "/volume1/web/nhanthang";
index index.php;
location ~* \.(php[345]?|phtml)$ {
fastcgi_pass ...
}
Điều bất thường là không có đoạn cấu hình quan trọng của WordPress.
Nguyên nhân
Đối với Nginx, WordPress cần có Rewrite Rule:
location / {
try_files $uri $uri/ /index.php?$args;
}
Trong Virtual Host của Synology, đoạn này hoàn toàn không tồn tại.
Do đó Nginx cố tìm file vật lý:
/gioi-thieu/
thay vì chuyển request về
index.php
Kết quả:
- Pretty Permalink 404
- REST API 404
- Gutenberg lỗi JSON
Cách khắc phục
Synology Web Station cho phép include thêm file cấu hình riêng.
Tạo file
/usr/local/etc/nginx/conf.d/<VirtualHostID>/user.conf
Ví dụ
/usr/local/etc/nginx/conf.d/bc979ce0-336a-4f26-8a1c-e1afddd2816d/user.conf
Nội dung:
location / {
try_files $uri $uri/ /index.php?$args;
}
Kiểm tra cấu hình
nginx -t
Nếu thành công
syntax is ok
test is successful
Reload Nginx
nginx -s reload
Kết quả
Ngay sau khi reload Nginx:
✅ /wp-json/ hoạt động bình thường.
✅ Pretty Permalink hoạt động.
✅ Gutenberg lưu bài viết bình thường.
✅ Contact Form 7 hoạt động.
✅ REST API hoạt động.
Không cần cài lại WordPress.
Không cần Restore Backup.
Không cần chuyển sang Apache.
Bài học rút ra
Trong quá trình xử lý, tôi nhận thấy nhiều người thường tập trung vào WordPress, Plugin hoặc Theme.
Tuy nhiên, nguyên nhân thực sự lại nằm ở cấu hình của Web Station (Nginx).
Khi sử dụng Synology NAS để chạy WordPress, nếu gặp các lỗi:
- REST API 404
- Pretty Permalink 404
- Gutenberg báo lỗi JSON
hãy kiểm tra ngay Rewrite Rule của Nginx trước khi nghĩ đến việc cài đặt lại WordPress.
Việc kiểm tra đúng hướng sẽ giúp tiết kiệm rất nhiều thời gian.
Kết luận
Synology NAS là một nền tảng rất tốt để triển khai WordPress cho doanh nghiệp hoặc website cá nhân.
Tuy nhiên, khi sử dụng Web Station với Nginx Backend, việc hiểu cơ chế Rewrite của Nginx là rất quan trọng.
Chỉ thiếu một Rewrite Rule nhỏ cũng có thể khiến hàng loạt chức năng của WordPress ngừng hoạt động.
Hy vọng bài viết này sẽ giúp những ai gặp tình huống tương tự có thể khắc phục nhanh chóng mà không cần cài đặt lại toàn bộ website.
Tác giả: Trần Thanh Phú
Website: https://nhanthang.com
Chuyên môn: IT Infrastructure • VMware • Windows Server • Synology • 3CX PBX • VPN • System Administration
Đề xuất SEO
Mình cũng gợi ý thêm một vài thông tin để bài dễ lên Google:
SEO Title:
Khắc phục WordPress Pretty Permalink 404 trên Synology Web Station (Nginx)
Slug:
wordpress-pretty-permalink-404-synology-nginx
Meta Description:
Hướng dẫn khắc phục lỗi WordPress Pretty Permalink 404, REST API (/wp-json/) và Gutenberg JSON Error trên Synology Web Station sử dụng Nginx Backend. Case Study thực tế.