Appearance
Local Sites で admin-ajax 実行が 503 になる場合(fastcgi_read_timeout)
P-WORLD 配信メールアーカイブの「今すぐ取得・保存する」など、/wp-admin/admin-ajax.php で 重い処理(IMAP取得・画像ダウンロード等) を同期実行すると、PHP 側で set_time_limit() を延ばしても Nginx 側の FastCGI タイムアウトが先に切れて、ブラウザには HTTP 503 が返ることがあります。
症状
- 管理画面操作で「リクエストに失敗しました(HTTP 503)…」が出る
- サーバーログでは Nginx の upstream timeout が見えることがある
対処(Local Sites の Nginx 設定を延長)
Local Sites のサイトごとの Nginx 設定で fastcgi_read_timeout を延長します。
- Local アプリで対象サイトを開く
- Site → Open Site Shell(または同等のシェル起動)
- Nginx 設定(サイト側の設定ファイル)を開き、
fastcgi_read_timeoutを追加/変更
例(300 秒に延長):
nginx
location ~ \.php$ {
fastcgi_read_timeout 300;
# ... other fastcgi settings ...
}- Nginx を再起動(Local Sites 側の「Restart site」等)
補足
- この設定は Local Sites の構成によってファイルの場所・再起動手順が異なります(Local Sites の UI から該当サイトの Nginx 設定に辿れる場合があります)。
- タイムアウト延長は根本対策ではありません。長期的には「重い処理の非同期化(ジョブ化)」が有効です。