インストール
CakePHPのインストールは比較的簡単です。いくつかのインストール方法がありますので、必要に応じて使い分ける事が出来ます。インストール後にパーミッションの設定を行ないます。
インストールの種類
種類 | 概要 |
---|---|
開発 | 丸ごとコピーするだけの方法 |
運用 | 丸ごとコピーしてWebサーバーのドキュメント・ルートの設定を行う方法 |
応用 | 主要なディレクトリを任意の場所にインストールし、その設置場所を設定する方法 |
開発
(丸ごとインストールするだけの方法)
ローカルのマシンでの開発など簡単に利用出来る方法です。レンタルサーバー等でWebサーバーのドキュメント・ルートが固定されていて変更出来ない場合などもこちらの方法でインストールします。
Webサーバーの公開ディレクトリの任意の場所にCakePHPを丸ごとコピーします。以下の例は、Webサーバーのドキュメント・ルートが'/var/www/html'、ダウンロードしたCakePHPのファイルを解凍して、'cake_1_3'のような名前にした場合の例です。
- /var/www/html
- cake_1_3
- .htaccess
- app
- cake
- index.php
- plugins
- vendors
- cake_1_3
次のようなURLでアクセスできます。
http://www.mydomain.com/cake_1_3/
運用
(ドキュメント・ルートの設定を行う例)
CakePHPを好きな場所にコピーして、app/webrootディレクトリをWebサーバーのドキュメント・ルートに設定します。
- /var/www/html
- cake_1_3
- app
- webroot(ここをWebサーバーの設定でドキュメント・ルートに設定する)
- cake
- index.php
- vendors
- app
- cake_1_3
以下のようにドキュメント・ルートに設定します。(Apacheでバーチャルドメインを使用した例)
<VirtualHost *:80> DocumentRoot /var/www/html/cake_1_3/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以下にあるtmpディレクトリは書き込み可能なパーミッションに設定する必要が有ります。
- app
- tmp
サイトのトップページ
サイトのトップページは、'app/views/pages/home.ctp'の内容が表示されいます。これはRoutesで設定されています。