CakePHP の最初のセットアップ方法は、二つ目の方法に比べて安全ではないので、通常、開発環境用にのみ推奨される方法です。二つ目の方法は、より安全で、公開環境で使用されるべきものです。
|
注意 |
|---|---|
|
注意: |
開発時には、特定の DocumentRoot の中に Cake のインストールディレクトリを下記のように丸ごと配置できます。
/wwwroot
/cake
/app
/cake
/vendors
.htaccess
index.php
このセットアップでは、 wwwroot フォルダは Webルートのように振舞います。そのため、 URL はこのようになります。(mod_rewrite を使用している場合):
www.example.com/cake/コントローラ名/アクション名/パラメータ1/パラメータ2
公開用セットアップを利用するには、サーバの DocumentRoot の変更権限を持っていなくてはなりません。そうすることで、ドメインすべてを、ひとつの CakePHP アプリケーションとして動かすことができます。
公開用セットアップは下記の配置を使用します。:
../path_to_cake_install
/app
/config
/controllers
/models
/plugins
/tmp
/vendors
/views
/webroot<-- ここが新しい DocumentRoot になる。
.htaccess
index.php
/cake
/vendors
.htaccess
index.php
このセットアップでは、webroot ディレクトリが web ルートとして動きます。そのため、 URL は次のようになるでしょう。(mod_rewrite を使用している場合):
http://www.example.com/コントローラ名/アクション名/パラメータ1/パラメータ2
Cake のディレクトリをディスクの別の場所に置きたい場合があります。共有サーバの制限のためであったり、幾つかの apps が同じ Cake ライブラリを共有するようにしたい時などです。
Cake アプリケーションには三つの主な部分があります。
CakePHP
のコアライブラリ
-
/cake
アプリケーションコード(コントローラ、モデル、レイアウト、ビューなど。)
-/app
アプリケーションの
webroot
ファイル(画像、javascript, CSS など) -/app/webroot
それぞれのディレクトリは、ファイルシステムのどこにでも配置することができます。
webroot
は、Webサーバからアクセスできるようにしておく必要があります。Cake
に場所を伝えるようにする限り、必要ならば、
webroot フォルダを
app フォルダから取り出すことも可能です。
Cake
のインストール時の設定で、/app/webroot/index.php で幾つか変更する必要があります。
編集するべき定数が三つあります。:ROOT、
APP_DIR、 CAKE_CORE_INCLUDE_PATH
です。
ROOT
には、あなたのapp フォルダを含むディレクトリのパスを設定してください。
APP_DIR
には、あなたの
app フォルダのパス名を設定してください。
CAKE_CORE_INCLUDE_PATH には、Cake ライブラリフォルダのパスを設定してください。
例 3.2. /app/webroot/index.php (一部分、コメントを除いてある。)
if (!defined('ROOT'))
{
define('ROOT', dirname(dirname(dirname(__FILE__))));
}
if (!defined('APP_DIR'))
{
define ('APP_DIR', basename(dirname(dirname(__FILE__))));
}
if (!defined('CAKE_CORE_INCLUDE_PATH'))
{
define('CAKE_CORE_INCLUDE_PATH', ROOT);
}
例で考えたほうが分かりやすいかもしれません。例えば、下記のようなセットアップで動作させたいとします。:
Cake
ライブラリを他のアプリケーションと共有させたい。配置する場所は/usr/lib/cake。
Cake
webroot
ディレクトリは
/var/www/mysite/
になる必要がある。
アプリケーションファイルは
/home/me/mysite
に保存する。
ファイルセットアップはこのようになります。:
/home
/me
/mysite<-- /cake_install/app として使われる
/config
/controllers
/models
/plugins
/tmp
/vendors
/views
index.php
/var
/www
/mysite <-- /cake_install/app/webroot として使われる
/css
/files
/img
/js
.htaccess
css.php
favicon.ico
index.php
/usr
/lib
/cake <-- /cake_install/cake として使われる
/cake
/config
/docs
/libs
/scripts
app_controller.php
app_model.php
basics.php
bootstrap.php
dispatcher.php
/vendors
こういうセットアップの場合、 webroot の index.php ファイルを次のように編集する必要があります。(この例では、 /var/www/mysite/index.php) :
|
注意 |
|---|---|
|
ファイルパスのデリミタとして、スラッシュよりも 'DS' 定数を使うようにしてください。そうすれば、間違ったデリミタを使って、'missing file'(「ファイルが見つからない」) エラーが出てしまうことを防止でき、より移動させやすくなります。 |
if (!defined('ROOT'))
{
define('ROOT', DS.'home'.DS.'me');
}
if (!defined('APP_DIR'))
{
define ('APP_DIR', 'mysite');
}
if (!defined('CAKE_CORE_INCLUDE_PATH'))
{
define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS.'cake');
}