For Want Of A Better Word

CakePHP 2 1つのcakeで複数のアプリを管理する設定

      2015/08/11

【参考】http://www.marineroad.com/staff-blog/3159.html

設定前の状態

  • ドキュメントルート: /var/www/html
  • フロントコントローラー:/var/www/html/form/index.php (.htaccessのrewrite_baseも修正済み)
  • appフォルダ : /var/www/cake/app
  • cakeフォルダ: /var/www/cake/lib/Cake

やりたいこと

appを一つじゃなくて複数持ちたい。
イメージとしては

/var/www/cake/apps/ app1
app2
app3

のようにして

/var/www/html/app1/index.php(app1のフロントコントローラー)
/var/www/html/app2/index.php(app2のフロントコントローラー)
/var/www/html/app3/index.php(app2のフロントコントローラー)

というようにアクセスできるようにしたい。

  • Controllerレベルでしか分離できない所を、分離できる。

(AppController系とか、DBそのものとか。)

  • そもそも、1アプリ内だとControllerのファイル名でしか区切りされないのが、見た目上わかりづらいのもいや。(アプリが増えれば、同じ場所にひたすらController・モデルが増える。。。)
  • 分離できれば、メンテナンスも楽だよね。

ということでやってみる。

こんな感じでアプリフォルダを複数作成

app側

フロントコントローラー側

このままmで、動いていた「form/posts/」にアクセスすると、
error_logに下記のメッセージが

PHP Fatal error:Can’t find application core file. Please create /var/www/cake/app/Config/core.php

core.phpが見つかりませんよーと。これを指定しているのはフロントコントローラーなので。。。
各フロントコントローラーindex.phpの修正

formフォルダのフロントコントローラー

■修正前

■修正後

 

※ ちなみにこっちはドキュメントルート側のディレクトリは変わっていないので、.htacessは修正なし。

app2フォルダのフロントコントローラー

■修正前はformと同じなので省略
■修正後

★★ htaccessのrewirite_baseの設定をしてみたら、app2はそのままでも動いちゃった。→ということは、form側のhtaccessにもいらないのかと思ってコメントアウトしたら、なくても動いた。。。。ありや?

とりあえず、これでOK。複数アプリ無事稼働!!

以上。

 - cake

  関連記事

cakephp_logo
symfony2しんどい

面倒くさい。。。。。 多機能だからか。Cakeに慣れているからか。しんどい。。。

cakephp_logo
Cake アソシエーション使っての感想

ちょっと自分でフレームワークを使わないで作成したプログラムについて、 Cakeを …

cakephp_logo
CakePHP2.0導入 ② とりあえず使ってみる。

CookBookを見ながら、気になった所だけメモ。 現在の安定版は2.3.5 P …

java-logo
javaのFilter(フィルター)

http://www.javaroad.jp/servletjsp/sj_ser …

cakephp_logo
【Cake】CakePHP_開発はじめる前に_いつも調べなおすことまとめ

Contents1 参考リンク集2 set flashのcssクラスを変更する3 …