カテゴリー
コンピューター

サブディレクトリに CakePHP をインストールしたい時の nginx 設定

環境、CakePHP のインストール条件

  • ドキュメントルートは /var/www/html/
  • ドキュメントルートには WordPress がインストールされている
  • WordPress 用にパーマリンク設定を施している
  • CakePHP を /var/www/html/cake/sample/ にインストールしたい

ポイント

  • CakePHP をインストールしたサブディレクトリにアクセスしたとき、CakePHP の webroot/ にアクセスするようにエイリアスを設定する。
  • パーマリンク設定を行う。
  • もし WordPress のパーマリンク設定が nginx 用に既にされているのなら、不要。(未検証)

具体的に次の設定を加えれば OK でした♪

ドキュメントルートに WordPress をインストールしており、年月日+任意の文字列といった「日付と投稿名」などのパーマリンクを設定している nginx 設定ファイルである、/etc/nginx/conf.d/default.conf のウェブサーバ部分にエイリアス設定を追加するだけで CakePHP を無事に動かすことができました。

    location / {    
        # WordPress カスタム パーマネントリンク対応
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    location /cake/sample/ {
        alias /var/www/html/cake/sample/webroot/;
    }

WordPress のパーマリンク設定をそのまま使用しておりますので、CakePHP をいじっていくうちに不具合が起こるかもしれません。検証しておりませんの><。

おわりに

公式ドキュメントでも、「nginxでのきれいなURL」の章でパーマリンク設定が紹介されております。

ここでの CakePHP の try_files の設定は次のとおりです。

try_files $uri $uri/ /index.php?$uri&$args;

一方で、WordPress のパーマリンク設定は次のようにしており、若干異なるのです。

try_files $uri $uri/ /index.php?q=$uri&$args;

この差は無視して、CakePHP では WordPress のリライティングを使用しております。今のところ問題は起きておりませんがインストールしただけですのでページを作ってそのページにアクセスしましたら問題が起きるかもしれません。

また、次のページが参考になりました。最初のページから新しい着眼点、ヒントが得られて大変助かりました。ありがとう存じます。

以上です。

コメントを残す