Khắc phục Timeout khi Build / Restore

Server timeout — build hoặc installer dừng giữa chừng.

timeoutperformance

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 hosts local
  • 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.

Tham khảo