Table of Contents : マニュアル

インストール

CakePHPのインストールは、Webサーバのドキュメントルートに放り込むだけの簡単インストールから、好きなだけ複雑かつ柔軟に設定することまでもできます。このセクションでは、CakePHPの主な3種類のインストール方法について説明します。開発、運用、応用の3種類です。

  • 開発(Development):簡単にはじめることができますが、アプリケーションのURLには、CakePHPをインストールしたディレクトリ名が入ります。他の設定と比べるとセキュリティ面はやや弱くなります。
  • 運用(Production):Webサーバのドキュメントルートを設定できる必要がありますが、URLをクリーンにでき、セキュリティを固くできます。
  • 応用(Advanced):幾つかの設定により、CakePHPの重要な各ディレクトリをファイルシステムの異なる場所に配置することができるので、多くのCakePHPアプリケーションがひとつのCakePHPコアライブラリのフォルダを共有することなどが可能です。

開発(Development)

Webサーバのドキュメントルート内に、Cakeのファイルを置いてください。例えば、Webサーバのドキュメントルートが/var/www/htmlだとすると、ファイルシステム上の開発用の設定は次のようになります:

  • /var/www/html
    • /cake_1_2
      • /app
      • /cake
      • /docs
      • /index.php
      • /vendors

CakePHPアプリケーションを見るには、Webブラウザをhttp://www.example.com/cake_1_2/に向けます。

運用(Production)

運用のためのセットアップのためには、Webサーバのドキュメントルートの変更権限を持っている必要があります。この運用セットアップでは、ドメイン全体が、一つのCakePHPアプリケーションになるようなイメージです。

運用セットアップは次のような設計になります:

  • /Cakeのインストールパス/
  • /app
    • /webroot (このディレクトリを、Webサーバのドキュメントルートとして設定します。)
  • /cake
  • /docs
  • /index.php
  • /vendors

このアプリケーションがApache上にある場合、このドメインのDocumentRoot directiveはこのようなものになります:

DocumentRoot /Cakeのインストールパス/app/webroot
  1. DocumentRoot /Cakeのインストールパス/app/webroot

CakePHPアプリケーションを見るには、Webブラウザをhttp://www.example.comに向けてください。

応用インストール

ある時には、CakePHPのディレクトリをファイルシステムの別な場所に配置したいと思う場合があるかもしれません。共有しているホストの制限であったり、複数のアプリが同じCakeのライブラリを使うようにしたかったりする場合などです。このセクションでは、どうやってCakePHPのディレクトリをファイルシステム内に分散配置できるのかを説明します。

まず、Cakeアプリケーションには三つの主要な部分があることに注意しましょう。:

  1. CakePHPのコアライブラリは、 /cakeの中にあります。
  2. あなたのアプリケーションコードは、/appの中です。
  3. アプリケーションのウェブルートは、通常、/app/webrootにあります。

この各ディレクトリは、webrootを除いて、ファイルシステム内のどこにでも配置できます。webrootは、Webサーバからアクセスできるようにする必要があります。しかし、Cakeに場所を知らせれば、webrootフォルダをappフォルダの中から取り出すことさえ可能です。

Cakeインストールの環境設定をするには、/app/webroot/index.phpの中を少し修正する必要があります。編集しなくてはいけない三つの定数は、ROOT、APP_DIR、CAKE_CORE_INCLUDE_PATHです。

  • ROOTには、アプリのフォルダが含まれているディレクトリのパスを設定します。
  • APP_DIRには、アプリのフォルダを設定します。
  • CAKE_CORE_INCLUDE_PATHには、CakePHPライブラリフォルダのパスを設定します。

例を挙げて、応用インストールを実践した場合の様子を見てみましょう。CakePHPを次のような条件で動作させたいとします。:

  • CakePHPのコアライブラリは/usr/lib/cakeに配置する。
  • アプリケーションのwebrootディレクトリは/var/www/mysite/にする。
  • アプリケーションのアプリディレクトリは/home/me/mysiteに置く。

このようなセットアップの場合には、 webroot/index.phpファイル(つまり、この例では/var/www/mysite/index.php)が次のようになるよう、編集します。

// /app/webroot/index.php (一部分。コメントは取り除いてあります。)

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');
}
  1. // /app/webroot/index.php (一部分。コメントは取り除いてあります。)
  2. if (!defined('ROOT')) {
  3. define('ROOT', DS.'home'.DS.'me');
  4. }
  5. if (!defined('APP_DIR')) {
  6. define ('APP_DIR', 'mysite');
  7. }
  8. if (!defined('CAKE_CORE_INCLUDE_PATH')) {
  9. define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS.'cake');
  10. }

ファイルパスの区切り文字には、スラッシュではなくDS定数を使うようにお勧めします。こうしておくと、間違ったデリミタによる、ファイルが無いというエラーを防ぐことができ、コードをさまざまなプラットフォームで動くようにすることができます。

各クラス用パスの追加情報

同一システム上にあるアプリケーションで、MVCクラスを共有できると便利な場合もあります。二つのアプリケーションから同じコントローラを使用したい場合には、CakePHPのbootstrap.phpを使って、その追加クラスをビューに接続することが可能です。

bootstrap.phpの中に次のような変数を定義して、CakePHPがMVCクラスを検索しにいく場所を登録してください。

$viewPaths        = array();
$controllerPaths  = array();
$modelPaths       = array();
$helperPaths      = array();
$componentPaths   = array();
$behaviorPaths    = array();
  1. $viewPaths = array();
  2. $controllerPaths = array();
  3. $modelPaths = array();
  4. $helperPaths = array();
  5. $componentPaths = array();
  6. $behaviorPaths = array();

この特別な各変数は、リクエストがあった時に用いることのできる追加クラスが入っているパス情報の配列として設定できます。それぞれのパス情報の最後がスラッシュで終わるようにしてください。

Apacheとmod_rewrite

CakePHPは、展開した状態ではmod_rewriteを使用するようになっており、ユーザの中には、自分のシステムでうまく動作するまで苦労する人もいます。これは、正しく動かすためにできるいくつかの点です。

  • .htaccessのオーバーライドが許可されていることを確認しましょう。場所は、httpd.confの中の、サーバのディレクトリを定義している場所です。正しいドキュメントルートのAllowOverrideがAllになっていることを確かめてください。
  • ユーザやサイト特有のhttpd.confではなく、システムのhttpd.confを編集してください。
  • CakePHPが必要な.htaccessを見つけられないでいるでしょうか。オペレーティングシステムの中には、'.'ではじまるファイルを隠しファイルとして扱うため、コピーや移動の際に、この現象が発生することがあります。CakePHPのファイルを、サイトのダウンロードセクションからか、SVNリポジトリから入手して、正しく展開するようにしてください。
  • mod_rewriteを正しく読み込んでいることを確認してください。LoadModule rewrite_module libexec/httpd/mod_rewrite.soや、AddModule mod_rewrite.cがhttpd.confの中にあることを確認してください。
  • CakePHPをユーザディレクトリ(http://example.com/~username)にインストールした場合は、CakePHPインストールのベースディレクトリにある.htaccessファイルを編集してください。"RewriteBase /~myusername/"を追加します。

点火

それでは、実際にCakePHPを動作させてみましょう。セットアップの種類にもよりますが、http://example.com/ または http://example.com/cake_install/をブラウザで開いてみましょう。この時点では、CakePHPのデフォルトのホーム画面と、現在のデータベース接続の状態が表示されるはずです。

Congratulations! CakePHPの最初のアプリケーションを作る準備ができました。