CakePHPで複数のアプリケーションを管理する方法が知りたいです。

http://www.marineroad.com/staff-blog/3159.html
このサイトを参考に以下の設定を行いました。

CakePHP2.0
├─apps
│ ├─admin (管理者者向けアプリ用アプリケーションフォルダ)
│ │ ├─Config
│ │ ├─Console
│ │ ├─Controller
│ │ ├─Lib
│ │ ├─Locale
│ │ ├─Model
│ │ ├─Plugin
│ │ ├─Test
│ │ ├─tmp
│ │ ├─Vendor
│ │ └─View
│ │
│ └─public (一般利用者向けアプリ用アプリケーションフォルダ)
│ ※adminフォルダと構造は同じ

├─lib
│ └─Cake
├─plugins
├─vendors
└─webroot (ドキュメントルート)
├─admin (管理者者向けアプリ用ドキュメントルート)
│ └─index.php

└─public (一般利用者向けアプリ用ドキュメントルート)
└─index.php

しかし、
http://localhost/eigazuki/admin
でアクセスしたところ、
「Internal Server Error」
とエラーが出てしまいます。
どこに問題があるのか全くわからず、ここでアドバイスをいただけましたら幸いです。
どうかよろしくお願いします!

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/06/12 14:03:21
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:tdoi No.2

回答回数174ベストアンサー獲得回数75

ポイント50pt

index.phpを見ないと何とも言えないところはありますが、恐らく、ROOT、APP_DIR、CAKE_CORE_INCLUDE_PATHの設定がまずいのだと思います。

実際に試していないので、これで動く場合があるのかもしれませんが、参考にしているブログの内容はちょっと怪しいです。これで動く気がしません。

ROOTは、CakePHP2.0/appsとならなければいけません。
APP_DIRは、admin、または、publicとならなければいけません。
CAKE_CORE_INCLUDE_PATHは、CakePHP2.0/libとならなければいけません。

まずは、このあたりをチェックしてみてください。

上記の構造なら、

define(‘ROOT’, dirname(dirname(__FILE__)) . DS . ‘apps’);
define('APP_DIR', 'admin'); // adminの場合
// define('APP_DIR', 'public'); // publicの場合
define('CAKE_CORE_INCLUDE_PATH', dirname(dirname(__FILE__)) . DS . 'lib');

とかでうまく行くんじゃないかと。
試してないので、微調整いるかもですが。

何かの参考になれば。

id:kyouryukun

アドバイスありがとうございます!
そうなんですか? それはショックです・・・。
tdoi さんのアドバイス通りに早速やってみます!!

2012/06/07 22:32:30

その他の回答1件)

id:papa-tomo No.1

回答回数362ベストアンサー獲得回数107

ポイント50pt

階層構造変更前のCakePHPで動作確認はしましたでしょうか。もしされていないのであれば、面倒でも改造前に動作確認をしてみるのが近道だと思います。

それと、Internal Server Errorに遭遇したときに、最初にするべきことは、Webサーバのログを見る事です。もしログを見ても分からないときには、質問と一緒にログを提示するのが良いと思います。

他2件のコメントを見る
id:papa-tomo

他の方の指摘通りだと思います。フォルダ構造が問題だと思います。

2012/06/08 10:09:48
id:papa-tomo

やはり、ログを見れば、大体の問題は解決できるはずですから、エラーが出たらまずログを見る癖をつけた方が良いと思います。その上で、解決できないときは、ログ付きで質問すると解決できると思います。

2012/06/08 10:12:23
id:tdoi No.2

回答回数174ベストアンサー獲得回数75ここでベストアンサー

ポイント50pt

index.phpを見ないと何とも言えないところはありますが、恐らく、ROOT、APP_DIR、CAKE_CORE_INCLUDE_PATHの設定がまずいのだと思います。

実際に試していないので、これで動く場合があるのかもしれませんが、参考にしているブログの内容はちょっと怪しいです。これで動く気がしません。

ROOTは、CakePHP2.0/appsとならなければいけません。
APP_DIRは、admin、または、publicとならなければいけません。
CAKE_CORE_INCLUDE_PATHは、CakePHP2.0/libとならなければいけません。

まずは、このあたりをチェックしてみてください。

上記の構造なら、

define(‘ROOT’, dirname(dirname(__FILE__)) . DS . ‘apps’);
define('APP_DIR', 'admin'); // adminの場合
// define('APP_DIR', 'public'); // publicの場合
define('CAKE_CORE_INCLUDE_PATH', dirname(dirname(__FILE__)) . DS . 'lib');

とかでうまく行くんじゃないかと。
試してないので、微調整いるかもですが。

何かの参考になれば。

id:kyouryukun

アドバイスありがとうございます!
そうなんですか? それはショックです・・・。
tdoi さんのアドバイス通りに早速やってみます!!

2012/06/07 22:32:30

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません