Server Timeout Issues
Triệu chứng: Build chạy 30-60 giây rồi dừng, hoặc installer step 1-3 báo 504 Gateway Timeout.
Nguyên nhân
Mỗi tầng trong stack có timeout riêng. Cần tăng tất cả các tầng phù hợp.
Tầng PHP
Tăng các giá trị trong php.ini (hoặc .user.ini trong web root):
max_execution_time = 600
max_input_time = 600
memory_limit = 1024M
Sau khi sửa, reload PHP (nếu là VPS) hoặc đợi vài phút (nếu là shared hosting với .user.ini).
Tầng web server (Nginx/Apache)
Web server cũng có timeout riêng cho request PHP.
Nginx — sửa fastcgi_read_timeout trong config:
fastcgi_read_timeout 600;
Apache — sửa Timeout trong config:
Timeout 600
Trên shared hosting, liên hệ support để tăng.
Tầng CDN / Reverse Proxy
Nếu site dùng Cloudflare, hoặc proxy khác, các service này thường có timeout cứng (Cloudflare Free: 100s). Không thể tăng trên gói miễn phí.
Workaround: Tạm bypass CDN khi build/restore:
- Truy cập installer qua IP gốc + file
hostslocal - Hoặc pause Cloudflare proxy (cloud icon → grey)
Plugin tự chia chunk
Plugin tự động chia build/restore thành các chunk nhỏ, mỗi chunk xử lý trong giới hạn timeout an toàn rồi tự gọi chunk tiếp theo qua AJAX. Nếu plugin chunk đều mà vẫn timeout → AJAX request bị web server hoặc CDN cắt.
Build qua CLI cho site rất lớn
Site quá lớn → build qua web không khả thi. Một số plugin cho phép trigger build qua WP-CLI:
wp slm package create --storage=local
CLI không bị timeout web → build chạy đến khi xong.