PHP用の高速開発フレームワーク、cakePHPのインストール方法の記録です。MAMP(というか、ローカル環境)に入れる時を意識して書いているので、実際のサーバーに設置する時とは若干ズレがある可能性がありますのでご注意ください。

前提

  • MAMP(Apache)をインストール済
  • (mod_rewriteを有効化)
  • (php.ini/date.timezoneをAsia/Tokyoに設定済)

下二項目はApache・PHPのベース設定になりますが、一応補足で説明を入れておきます。

おおまかな流れ

  1. cakePHPをダウンロード&解凍&設置
  2. (mod_rewriteを有効化)
  3. (php.ini/date.timezoneの設定)
  4. core.phpの編集
  5. database.phpの編集
  6. DebugKitのダウンロード&解凍&設置
  7. bootstrap.phpの編集

cakePHPをダウンロード&解凍&設置

cakephp-install1

cakePHPの公式サイト(http://cakephp.jp/)にアクセスし、cakePHPの安定板をダウンロードします。
「cakephp-2.4.10.zip」のようなファイルがダウンロードできたらOKです。(バージョンによって数字は異なります。)

ダウンロードしたファイルを解凍し、DocumentRootの下に移動させます。

解凍したままだと、「cakephp-2.4.10」という感じでバージョン名の入ったフォルダ名になっていると思いますので、好きな名前に変更しましょう。
私はバージョン名を取って「cakephp」に変更しました。

cakephp-install2

ここで、一度cakephpにアクセスしてみましょう。
ドキュメントルートのURLが「http://localhost:8888/」で、配置したcakephpのフォルダ名が「cakephp」なら、「http://localhost:8888/cakephp/」でアクセスできます。

cakephp-install3

こんな風に表示されましたか?
もし、文字は出ているけどなんだかレイアウトが崩れている…というような感じなら、Apacheの「mod_rewrite」を有効化する必要があります。
MAMPを使っている場合は最初から有効なので、「mod_rewriteの設定」は読み飛ばしてください。

mod_rewriteの設定

URL rewriting is not properly configured on your server. 1) Help me configure it 2) I don’t / can’t use URL rewriting

このようなエラーが表示されている場合はmod_rewriteの設定をします。

Apacheの「http.conf」を開き、

#LoadModule rewrite_module modules/mod_rewrite.so

という部分を探します。
先頭の#を削除して、

LoadModule rewrite_module modules/mod_rewrite.so

このように変更し、Apacheを再起動します。

cakePHPを再度表示して、先ほどのエラーメッセージがなくなって、レイアウトがなおっていればmod_rewiteの設定は完了です。

php.ini/date.timezoneの設定

phpを今回初めて使うような場合は、「date.timezone」に関するエラーが出る場合があります。
「etc/php.ini」を編集して、[Date]のdate.timezoneを「Asia/Tokyo」に変更してください。

[Date]
; Defines the default timezone used by the date functions
; Will be changed by MAMP to system timezone
date.timezone = "Asia/Tokyo"

cakephp-install4

MAMPなら「MAMP/conf/php5.5.xx/php.ini」にも書けます。(使っているバージョンのフォルダの中のphp.iniを編集してください。)
php.iniの編集権限がないような場合は、

「cakephp\lib\Cake\Cache\CacheEngine.php」で調整することもできます。

date_default_timezone_set('Asia/Tokyo');

以上を以下の場所に追記します。

if (!is_numeric($this->settings['duration'])) {
date_default_timezone_set('Asia/Tokyo');
$this->settings['duration'] = strtotime($this->settings['duration']) - time();
}

cakephpのトップから、date.timezoneの警告がなくなればOKです。

core.phpの編集

「Security.salt」、「Security.cipherSeed」という項目について、以下のエラーがでているので対応します。

Notice (1024): Please change the value of ‘Security.salt’ in APP/Config/core.php to a salt value specific to your application. [CORE/Cake/Utility/Debugger.php, line 845]

Notice (1024): Please change the value of ‘Security.cipherSeed’ in APP/Config/core.php to a numeric (digits only) seed value specific to your application. [CORE/Cake/Utility/Debugger.php, line 849]

どちらも、セキュリティ用の設定値が初期値なので変更してね〜という内容です。

「cakephp/app/Config/core.php」を開き、「Security.salt」には英数字、「Security.cipherSeed」は数字のみで値を変更してください。
パスワード生成アプリなどで値を発行してもいいかもしれませんね。
(画像は、設定する前のキャプチャです)

cakephp-install5

保存、終了して再度cakephpの画面を開くと、2つのエラーがなくなっていると思います。

cakephp-install6

database.phpの編集

次に、データベースの設定を行います。

Your database configuration file is NOT present.
Rename APP/Config/database.php.default to APP/Config/database.php

こんな内容の黄色い警告がでていますね。
データベースの設定ファイルがないから「database.php.default」をリネームして「database.php」にしなさいと言っています。

「cakephp/app/Config/database.php.default」を念のためリネームではなくコピーして、「database.php」に変更します。間違えた時に戻せるようにしておきたいからです。(うまく設定ファイルができたら消してもかまいません。)

cakeのトップを更新すると、先ほどの警告はグリーンになっていますが新たに別の警告がでました。

CakePHP is NOT able to connect to the database.
Database connection “Mysql” is missing, or could not be created.

データベースに接続できません。
ということなので、「database.php」を変種して、接続設定をします。

DATABASE_CONFIGクラスの、「$default」を自分のデータベースの設定にあわせて修正してください。「$test」は特に使わないならそのままでも消してもかまいません。

MAMPの方はMysqlを使うと思いますので「login」「password」「database」と「encoding」を変更すればよいでしょう。

class DATABASE_CONFIG {

	public $default = array(
		'datasource' => 'Database/Mysql',
		'persistent' => false,
		'host' => 'localhost',
		'login' => 'database_user',
		'password' => 'database_password',
		'database' => 'database_name',
		'prefix' => '',
		'encoding' => 'utf8',
	);
}

こんな感じです。
接続設定が正しく書けていれば、警告がグリーンになります。

cakephp-install7

DebugKitのダウンロード&解凍&設置

最後に、次の警告をグリーンにしましょう。

DebugKit is not installed. It will help you inspect and debug different aspects of your application.
You can install it from GitHub

DebugKitが入っていないので、入れましょうという内容です。
「GitHub」のところがリンクになっているので、そこからダウンロードできます。(こちらにも一応リンク貼っておきます。)

cakephp-install8

「Download ZIP」をクリックしてファイルを保存&解凍すると「debug_kit-master」というのが入手できます。
「DebugKit」という名前にリネームして、「cakephp/plugins」フォルダに移動させてください。今回のリネームは、次の設定のために必須です。

次はbootstrap.phpを編集して、DebugKitを有効化します。

bootstrap.phpの編集

「cakephp/app/Config/bootstrap.php」を開き、「DebugKit」で文字検索してください。

69行目あたりに

/**
 * Plugins need to be loaded manually, you can either load them one by one or all of them in a single call
 * Uncomment one of the lines below, as you need. Make sure you read the documentation on CakePlugin to use more
 * advanced ways of loading plugins
 *
 * CakePlugin::loadAll(); // Loads all plugins at once
 * CakePlugin::load('DebugKit'); //Loads a single plugin named DebugKit
 *
 */

というコメントがあるので、そのコメントの下に以下を追記します。コメントから該当箇所をコピーして貼付けると間違えなくていいと思います。

CakePlugin::load('DebugKit'); //Loads a single plugin named DebugKit

cakephp-install9

これで、警告もすべてグリーンになりました!
cakephpのインストールは以上になります。おつかれさまでした。

※cakePHP2.4.10での情報です。