[WordPress]StaticPressで初期化中にエラーになる場合


このブログはnginx + php-fpmを使ったWordpressで動いているのですが、ふとs3に移行しようと思い調べてみたところ「StaticPress」プラグインを使って静的コンテンツに再構築し、それをs3にアップロードするのが定番のようでした。

そこで、まずはStaticPressを使って静的コンテンツを再構築してみたのですが、以下のようにエラーが発生してしまいました。

初期化中...
エラー!

これだけだと何が原因なのか分からなかったので、nginxのエラーログを確認してみたところ、以下のように「upstream timed out 」のエラーが発生していました。

2014/10/26 12:15:16 [error] 21918#0: *2232135 upstream timed out (110: Connection timed out) while reading response header from upstream, client: ...., server: blog.hello-world.jp.net, request: "POST /wp-admin/admin-ajax.php HTTP/1.1", upstream: "http://127.0.0.1:8080/wp-admin/admin-ajax.php", host: "blog.hello-world.jp.net", referrer: "https://blog.hello-world.jp.net/wp-admin/admin.php?page=static-press"

2014/10/26 12:15:16 [error] 21918#0: *2232152 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 127.0.0.1, server: blog.hello-world.jp.net, request: "POST /wp-admin/admin-ajax.php HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", host: "blog.hello-world.jp.net", referrer: "https://blog.hello-world.jp.net/wp-admin/admin.php?page=static-press"

そこで、nginxのvirtualhost設定を編集し、proxy_passでbackendのupstream(127.0.0.1:8080)にproxyしている部分に

proxy_read_timeout 600;

を記述し、

fastcgi_passでphp-fpm(127.0.0.1:9000)にproxyしている部分

fastcgi_read_timeout 600;

を記述してtimeout時間を10分に変更し、nginx設定再読み込み。
(一度300で試したのですがtimeoutになってしまいました。。。)

再度、「再構築」を行ったところtimeoutせず、静的コンテンツの生成ができました。

なお、初回実行時は全ての静的コンテンツを生成するのに30分程かかりました。

生成されたhtmlを確認してみたところ、SNSボタン等プラグイン経由で出力している部分がうまく表示されていなかったりしたのでもう少し調査してみる必要がありそうです。

参考