test

CakePHP Note

インストール

UPDATE:2008.04.13

インストールの種類

インストールはいくつかの方法があります。

  • 丸ごとコピーするだけの方法(開発向け)
  • 丸ごとコピーして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

次のような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

以下のようにドキュメント・ルートに設定します。(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へ移動する)
  • 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で設定されています。