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

メニュー系のCSS

よく迷うのでこれを機にまとめておこうかと。 Contents1 通常時のメニュー2 携帯(いわゆる縦のメニュー)3 ホバー時の画像選択4 小ネタ 選択されているときのメニュー 通常時のメニュー htm …

no image

サーバーの過負荷の発見 メモリ使用率の調査&抽出、置換(awk,sed)コマンドについて

前回、サーバーの負荷調査について記事を書いたので、それに関するスクリプトを。 Contents1 仕様2 ソース3 解説3.1 freeコマンド3.2 awk3.3 sed 仕様 日付とメモリ使用率、 …

no image

Addtypeについて

htmlにはPHPを埋め込むことができますが、拡張子がhtmlの場合、そのままでは実行できません。 この場合、通常では拡張子を変えなければいけないところですが、apacheを使っている場合、設定ファイ …

no image

メール送信に関して その2 メールメッセージのデータ形式

前回に引き続き、メールのメッセージ構造について書きたいと思います。 Contents1 大まかな構造2 ヘッダ部2.1 メールアドレス2.2 From/Sender/Reply-To2.3 To/Cc …

no image

WinSCPの活用法

WinSCPの活用方法などについて WinSCPでZIPの解凍、ZIPへの圧縮を右クリックからカスタムコマンドで実行できるようにする。 特にzipでファイルを固める処理はよくやるので覚えておきましょう …