- ベストアンサー
1つのcakePHPで複数のサイトを作成する方法
- 1つのアプリ(cakePHP)で、複数のサイトが入っている物を作成する方法を紹介します。
- URLを使って各サイトを個別にアクセスできるようにするために、ルーティングやフォルダ分けの方法を説明します。
- URLがかっこ悪くならないようにするために、ファイル名やクラス名を複雑にする方法も提案します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
やり方は色々あると思いますが、私が試した方法に関しまして。 ・mikan_appと、ringo_appと、「parent_app」という物を別でつくっておく で、config値とかそういうものを全部parent_appの中から参照しちゃおうという手です。 mikan_appと、ringo_appの中にある、bootstrap.phpとか、database.phpの中身を、 bootstrap.php-------------------------- <?php require_once ROOT . DS . 'parent_app' . DS . 'config' . DS . 'bootstrap.php'; ?> みたいなものだけにしてしまう。 そうすれば、parent_appの中のbootstrap.phpを読めます。 そして、parent_appのbootstrap.phpの中を、 <?php App::build(array( 'plugins' => array( APP . 'plugins' . DS, ROOT . DS . 'parent_app' . DS . 'plugins' . DS, ), 'models' => array( APP . 'models' . DS, ROOT . DS . 'parent_app' . DS . 'models' . DS, ), 'views' => array( APP . 'views' . DS, ROOT. DS . 'parent_app' . DS . 'views' . DS, ), 'controllers' => array( APP . 'controllers' . DS, ROOT . DS . 'parent_app' . 'controllers' . DS, ), 'datasources' => array( APP . 'models' . DS . 'datasources' . DS, ROOT . DS . 'parent_app' . DS . 'models' . DS . 'datasources' . DS, ), 'behaviors' => array( APP . 'models' . DS . 'behaviors' . DS, ROOT . DS . 'parent_app' . DS . 'models' . DS . 'behaviors' . DS, ), 'components' => array( APP . 'controllers' . DS . 'components' . DS, ROOT . DS . 'parent_app' . DS . 'controllers' . DS . 'components' . DS, ), 'helpers' => array( APP . 'views' . DS . 'helpers' . DS, ROOT. DS . 'parent_app' . DS . 'views' . DS . 'helpers' . DS, ), 'vendors' => array( APP . 'vendors' . DS, ROOT . DS . 'parent_app' . DS . 'vendors' . DS, ), 'shells' => array( APP . 'shells' . DS, ROOT . DS . 'parent_app' . DS . 'shells' . DS, ), 'locales' => array( APP . 'locales' . DS, ROOT . DS . 'parent_app' . DS . 'locales' . DS, ) )); ?> としてやれば、アクセスしてきた、mikan/ringoのディレクトリの中のファイルを参照した後なければ、parent_appの中のファイルを参照しに行きます。 後は、mikan/ringoの共通で使うヘルパなんかは、parent_appの中の該当ディレクトリにおいて それぞれが単独で使うようなものは、それぞれの、mikan_app/ringo_appの中につくる
その他の回答 (2)
- hogehoge78
- ベストアンサー率80% (433/539)
連投で、ごめんなさい。少しだけ書ききれなかった。 最後に、フロントのindex.phpは、それぞれ物理的にディレクトリを、 mikan/index.php ringo/index.php と二つ用意して、APP_DIRだけ、書き換えればよいかと。
- taka451213
- ベストアンサー率47% (436/922)
こんばんは。 >現在は下記のようにしています。 これは上手く動いているんですかね? 一番手っ取り早いのは、mod_rewriteを使う・・・。 RewriteEngine On RewriteRile ^/([^/]+)/([^/]+)/([^/]+)$ /$1_$2/$3 [L] インチキっぽいですが、せっかく動いているので・・・。
お礼
教えていただいた方法を参考に作成する事ができました! ありがとうございました。