nginx環境で、CakePHPの中にWordPressをインストールする為のconf設定

   

試行錯誤時間:半日程度 CakePHPで作ったアプリの内部に、一部だけ更新情報を発信する為にWordPressを導入したいというニーズはあると思うんですよ。しかしですね、 nginx環境で、CakePHP内にWordPressってなると情報ソースが少ないのです。
今回は特に、UKLabさんのこの記事をベースにnginxを組み立てた人向けの設定方法です。

さくらのVPSでWordPressを動かそう – 初期設定・セキュリティ設定編 - - UKLab開発者ブログ


環境

  • CakePHP:http://cake.php/
  • WordPress: http://cake.php/blog/

こんな感じにしたい時のconfファイルの設定方法です。   編集するのはこちらのページに出てくるファイル。 nginxの設定ファイルを書きなおした - UKLab開発者ブログ


default-proxy.conf 内の設定です。リバースプロキシ部分っていう奴。

変更点1 ブログ設定を書き足す

location ~* ^/wp-(content|admin|includes) {
index   index.php index.html index.htm;
if ($request_filename ~ .*.php) {
break;
proxy_pass http://backend;
}
# expiresヘッダー用の設定を読み込みます。
include /etc/nginx/conf.d/common/expires.conf;
}

この部分を変更します。mobile-cache.confを読み込んだ次の行からが変更点

# Blog config
location /blog {
index index.php;
try_files $uri $uri/ /blog/index.php?$args;

location ~* ^/wp-(content|admin|includes) {
index   index.php index.html index.htm;
if ($request_filename ~ .*.php) {
break;
proxy_pass http://backend;
}
# expiresヘッダー用の設定を読み込みます。
include /etc/nginx/conf.d/common/expires.conf;
}
}

こんな感じで、WordPress用のロケーションの設定(/blog)を追加し、管理画面系の設定を括ってしまいます。
最後に、 location / の try_filesを追加して完成。

location / {
# for cakephp
try_files $uri $uri/ /index.php?url=$uri$args;

# PHPファイルへのアクセスの場合バックエンドに処理が投げられる。
if ($request_filename ~ .*.php) {
break;
proxy_pass http://backend;
}
# expiresヘッダー用の設定を読み込みます。
include /etc/nginx/conf.d/common/expires.conf;

# デフォルトではキャッシュするように変数に0をセットする。
set $do_not_cache 1;
# WordPressにログインしている場合はキャッシュしないように変数に1をセットする。
if ($http_cookie ~* "comment_author_|wordpress_(?!test_cookie)|wp-postpass_" ) {
set $do_not_cache 1;
}
# POSTアクセスの場合もキャッシュしないように変数に1をセットする。
if ($request_method = POST) {
set $do_not_cache 1;

以下同じ、という感じです。これだけ。

オススメNginx本

nginx実践入門 (WEB+DB PRESS plus) 単行本(ソフトカバー) – 2016/1/16

nginxを現場で活用するための知識を、実践的なノウハウを交えて解説した書籍です。nginxのインストール方法や基本的な設定方法からはじめ、nginxを利用した「静的コンテンツ配信サーバ」「HTTPSサーバ」「Webアプリケーションサーバ」「大規模コンテンツ配信システム」の構築方法をそれぞれ詳しく紹介しています。後半ではnginxサーバのモニタリングやログの収集、そして軽量スクリプト言語Luaでnginxを拡張する方法について解説しているので、nginxをこれから使う方はもちろん、さらに活用したい方にもお勧めです。

 - Wordpress