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
【Cake】bakeの手順 | デフォルト管理画面をbootstrapに対応させる

※CakePHPのマニュアルが嫌いだ!! cakeを落としてきて、 wget h …

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

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

cakephp_logo
未解決・疑問 CakePHPファイルアップロードのサイズチェックについて

CakePHPでファイルのアップロードを受け付けようとしてて、ちょっと嵌っている …

cakephp_logo
CakePHP クラス変数 var と publicの違い

Cakeの問題じゃなくてPHPの言語仕様の問題。 PHP4の頃はクラス変数をva …

cakephp_logo
cakephpでSQLインジェクション対策

参考になったのでメモ Cake1.3でのデフォルトのセキュリティ対策を検証してく …