test
CakePHP Note
インストール
インストールの種類
インストールはいくつかの方法があります。
- 丸ごとコピーするだけの方法(開発向け)
- 丸ごとコピーしてWebサーバーのドキュメント・ルートの設定を行う方法(運用向け)
- 主要なディレクトリを任意の場所にインストールしてその設置場所をapp/webroot/index.phpファイルに記述する方法(運用向け)
丸ごとインストールするだけの方法
Webサーバーの任意の場所にCakePHPを丸ごとコピーします。Webサーバーのドキュメント・ルートが'/var/www/html'、ダウンロードしたファイルを解凍して、'cake_1_2'のような名前にした場合の例です。cake_1_2フォルダーを丸ごとコピーします。
- /var/www/html
- cake_1_2
- app
- cake
- index.php
- vendor
- cake_1_2
次のようなURLでアクセスできます。
http://www.mydomain.com/cake_1_2/
ドキュメント・ルートの設定を行う例
CakePHPを好きな場所にコピーして、app/webrootディレクトリをWebサーバーのドキュメント・ルートに設定します。
- /my_hogehoge_path
- cake_1_2
- app
- webroot(ここをWebサーバーの設定でドキュメント・ルートに設定する)
- cake
- index.php
- vendor
- app
- cake_1_2
以下のようにドキュメント・ルートに設定します。(Apacheでバーチャルドメインを使用した例)
<VirtualHost *:80>
DocumentRoot /my_hogehoge_path/cake_1_2/app/webroot
ServerName www.mydomain.com
</VirtualHost>
次のようなURLでアクセスできます。
http://www.mydomain.com/
任意の場所にインストールする例
レンタルサーバーなどWebサーバーの設定を変更できない時のインストール。cake, app ,app/webrootの3つを任意の場所にインストールし、app/webroot/index.phpファイルにその設置場所を記述します。
ディレクトリの構成
以下の例は、マルチドメイン対応のレンタルサーバーでWebサーバーでマルチドメインの設定をすると、そのドメイン名のドキュメント・ルートが「public_html/ドメイン名」になる例です。www.mydomain.comの部分には実際のドメイン名が入ります。これは1つのCakePHPのコアライブラリで複数のアプリケーションを稼働させる例です。
- app
- www.mydomain.com(元々appにあったwebroot以外を全部入れる)
- tmp(書き込み可能なパーミッションに)
- ww.second-domain.com(2つめのドメイン用)
- webroot*(public_htmlへ移動する)
- www.mydomain.com(元々appにあったwebroot以外を全部入れる)
- cake
- cake
- vendors
- public_html
- www.mydomain.com*(appから移動されたwebroot。名前を変更する)
- www.second-domain.com(2つめのドメイン用)
ディレクトリに関する設定
次の3つのディレクトリに関する設定を行ないます。
- ルートのディレクトリ(appディレクトリを含むディレクトリ)
- アプリケーションのディレクトリ(appディレクトリをインストールした場所)
- フレームワークのコアライブラリのディレクトリ(cakeディレクトリをインストールした場所)
修正するファイル:public_html/www.mydomain.com/index.php
ルートとして認識させるディレクトリを設定
if (!defined('ROOT')) {
//define('ROOT', 'FULL PATH TO DIRECTORY WHERE APP DIRECTORY IS LOCATED. DO NOT ADD A TRAILING DIRECTORY SEPARATOR');
//You should also use the DS define to separate your directories
define('ROOT', dirname(dirname(dirname(__FILE__))));
}
アプリケーションとして認識させるディレクトリを設定(ルートからの相対パス)
if (!defined('APP_DIR')) {
//define('APP_DIR', 'DIRECTORY NAME OF APPLICATION');
define('APP_DIR', "app" . DS . "www.mydomain.com");
}
コアライブラリとして認識させるディレクトリを設定
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
//define ('CAKE_CORE_INCLUDE_PATH', 'FULL PATH TO DIRECTORY WHERE CAKE CORE IS INSTALLED. DO NOT ADD A TRAILING DIRECTORY SEPARATOR');
//You should also use the DS define to separate your directories
define('CAKE_CORE_INCLUDE_PATH',ROOT. DS . "cake");
}
パーミッション
通常app以下にあるtempディレクトリは書き込み可能なパーミッションに設定する必要が有ります。
- app
- temp
書き込み可能なにしていないと以下のようなエラーが出力されます。
Warning (512): app/tmp/cache/ is not writable [CORE/cake/libs/cache/file.php, line 263
Javsscriptファイル
prototype.jなどJavascriptのファイルは、ドキュメントルートの'js'ディレクトリに置きます。Javascriptのファイルが見つからないと、以下のエラーが出力されます。
Missing Controller
Error: JsController could not be found.
サイトのトップページ
サイトのトップページは、'app/views/pages/home.ctp'の内容が表示されいます。これはRoutesで設定されています。
