システム開発・構築の神様

新しいサービスや技術を使った開発や構築。その他不具合解決など

PHP Nginx PHP-FPM環境で「504 Gateway Time-out」エラー対策

WEBページ側で、バッチ処理的な時間がかかる重たい処理を実行すると

504 Gateway Time-out

が発生し、処理が途中で止まってしまいます。

WEBで良くみる対策方法

set_time_limit( xxx );

を試して見ても、結果は変わらず・・・・

そういうものなの?っと

諦めて分割処理されている方もいるのではないのでしょうか?

そんな時は下記の設定を試して見るといいかもしれません。

• php.ini
max_execution_time = 300
 
• php-fpm.conf
request_terminate_timeout 300
 
• nginx.conf
fastcgi_read_timeout 300

fastcgi_read_timeoutの値の設定が一番大事?

私はいつもfastcgi_read_timeoutの設定だけで、タイムアウトを回避できています。

(その他はデフォルト設定です)

WordPress REST APIを使ってサイト構築 Apache

他のCMS同様、WordPressもREST APIに対応しています。

ただ、REST APIを使うためには、プラグインの導入が必要です。

WordPress REST API (Version 2)

wordpress.org

プラグインをインストールし、有効にするだけで準備は完了します。

Apache .htaccessの設定も、RewriteEngineを使う仕様なら特に変更することなく動作します。

RewriteEngineを使っていない(.htaccessが無効)の場合、エラー(真っ白な画面または404エラー)になるようですが。

インストール後

http://xxxxxxx.xxx/wp_search/wp-json

にアクセスすると、JSON結果を取得することができます。

ただ、このままでは日本後がUTFエンコードされていたり、インデントされていないため、JSONデータの確認が困難です。

そういう場合は

Google Chromeブラウザーのアドオンを入れて、JSONコードを整形すると便利です。

chrome.google.com

REST APIを使うことで、Wordpressのテーマ開発が簡単になりそうです。

Wordpressの関数などを覚えなくても、フロント部を開発できるのはメリットが大きいと思います。