skillup

技術ブログ

サーバー・ネットワーク

nginxインストール(サブディレクトリでcakePHPを使いたいとき)

投稿日:2016年1月14日 更新日:

以前nginxのインストールを行いましたが、理解が浅かったようで今回すげーはまりました(汗)

ガチンコ塾でもいっていますが、覚え始めの時はコピペでもいいですが(最初から100%の理解は非現実的)、慣れてきたら理論的なことを少しずつ覚えてきたいですね。

以前のリンク

nginxの設定

nginx上でのcakePHP

今回はバーチャルホストではなく、1つのドメインのサブディレクトリでcakePHPを使うケースでした。

example.comというホストの下に

example.com/hoge/
example.com/foo/
example.com/bar/

といったようなサービスが存在しており、1つ1つが別のサービスというケースです。

今回新しいURlとしてexample.com/sample/というURLでcakeを使いたいケースです。

環境

  • nginx 1.9.3
  • cake 2.7.7
  • php 5.4.16
  • MariaDB  5.5.44
  • ディレクトリを/var/nginx/sampleに設置

ソース

/etc/nginx/conf.d/default.conf

実際の流れ

大事な考え方として、こういう場合、いきなりcakeを一気に表示することは目指さないほうがいいでしょう。

いきなりゴールにたどり着こうとすると、エラーが起こってもどこで起きているかがわかりにくいため、最初はなるべく一番単純なパターンではじめ、徐々にゴールに近づけていくのがポイントです。

今回のケースでは下記のようにすすめていくのがいいでしょう。

  1. まずはnginxのディフォルトのページを出す
  2. hello,worldだけを表示するような簡単なページを出す
  3. cakeのindex.phpを表示する
  4. cakeの任意のページを出力する
  5. cssやjsなども正常に表示する

一見遠回りに見えますが、こちらのほうが近道です。

なんでこんなことを力説するかというと今回php-fpmのの問題だったのに、cakeの問題だと勘違いして2時間ぐらい無駄にしたからです(汗)

1.まずはnginxのディフォルトのページを出す

まずはhttp://ドメイン名でアクセス正常にnginxが動いているかを確認します。下記ページが表示されればOKです。
ダウンロード

2 hello,worldだけを表示するような簡単なページを出す

/var/nginx以下にhoge.phpを置いてブラウザからhttp://domain/hoge.phpが動くかを確認します。

php-fpmが動いていれば正常に出力されますが、そうでないとファイルのダウンロードが始まったり、404になったりします。

ちなみに動いていない場合はソース下記の部分を参考に。

3 cakeのindex.phpを表示する

通常のphpファイルが正常に表示されたら、cakeのなかのページの表示を行います。

ブラウザからhttp://domain/sample/index.php あるいはhttp://domain/sample/でアクセスしてみましょう。

ちなみにこの部分はソースの下記の部分が動いています。

4 cakeの任意のページを出力する

cakeは通常 http://domain/アプリ名/コントローラー名/アクション名/といった形式でアクセスを行います。

このようなファイルはありませんが、URLの書き換えを行っていますので、上記のようなURLでアクセスできるわけです。

こちらに相当するのが上記のソースの

の部分です。

5 cssやjsなども正常に表示する

上記のままだとcssやjs、画像ファイルが正常に出力されていないと思います。

これらのファイルに関してはwebrootを起点ということを知らせたいので下記のように記述します。

参考リンク

nginx上でサブディレクトリのCakePHPアプリを動作させる

ちなみにapacheでは下記のリンクを。

cakePHPでのサブディレクトリ(apache)

-サーバー・ネットワーク
-,

執筆者:


  1. […] 以前nginxでの使用法については下記に書きました。 nginxインストール(サブディレクトリでcakePHPを使いたいとき) […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

cakePHPでのサブディレクトリ(apache)

apache使用時、cakePHP2系をサブディレクトリで使いたいときの運用法に関して。通所通りですとファイルにアクセスできないので、URLのリライトをうまくしないといけません。下記に設定例をかきます …

no image

FTPソフトでのアクティブモード&パッシブモードについて

Webアプリを作る場合、基本的にSSHが使えることが前提だったんですが、先日安いサーバーでWebサイトを作る案件があり、FTPでアップをする必要に迫られました。 その時に、「ログインはできているんだけ …

no image

メールヘッダ・インジェクション

Contents1 メールヘッダ・インジェクションとは?2 被害3 対策 メールヘッダ・インジェクションとは? お問い合わせメールなどでメールのヘッダを悪意のある第三者に自由に変更させられてしまう機能 …

no image

Linuxコマンドでのテキスト整形 CSV系の処理など

以前、対テキストファイル系のLinuxコマンドの使い方を紹介しましたが、その関連エントリーを。 今回やるのはCSV系の処理ですね。 id name age 1  suzuki 35 2  tanaka …

no image

Gitのブランチについて

ちょっといろいろと触っているGitに関して。 前回は作業ディレクトリ、インデックス、コミットについて説明したのですが、今回はブランチについて行います。 Contents1 ブランチとは?2 ブランチに …