読者です 読者をやめる 読者になる 読者になる

kwsktr's study log

kwsktr のおべんきょログ

XAMPP 1.7.3 + CakePHP 1.3.3 設置覚書 :: Windows版

そろそろ夏休み。
できる限り勉強をしたいので、環境を作ってます。忘れた時のために覚書。bakeを使わないで、手動でセコセコやる取り組み。

XAMPPとCakePHPのダウンロード

おなじみの XAMPP

apache friends - xampp for windows

XAMPP Windows版 1.7.3 から適当にダウンロード。

そして CakePHP

CakePHP: 高速開発 php フレームワーク。 Home

1.3.3 Stable をダウンロード。正直、1.2.7 のほうがネットに情報はあります。

インストールというか設置

まずは、XAMPP からインストール。Default だと C:\ 直下。

CakePHPは、解凍したらフォルダ名を変更。『cake』などに。変更したら、DocumentRoot の c:\xampp\htdocs\ に移動しておきます。

XAMPP の設定

とりあえず、最初は XAMPP の初期設定を。

  1. c:\xampp\apache_start.bat で、Apache を起動させ、ブラウザで http://localhost/ にアクセスして、XAMPP の起動を確認します。
  2. c:\xampp\mysql_start.bat で、MySQL を起動させ、http://localhost/security/ にアクセスして、セキュリティ関連の設定を済ませます。

なお、MySQLのユーザーは設定しておいても良いかと。

CakePHP の設定

XAMPP 1.7.3 + CakePHP 1.3.3 の組み合わせだと、この状態で、http://localhost/cake/ にアクセスすると、

Warning (2): strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for '9.0/no DST' instead [CORE\cake\libs\cache.php, line 570]

Notice: Trying to get property of non-object in C:\xampp\htdocs\cake\cake\libs\cache\file.php on line 248

Fatal error: Call to a member function cd() on a non-object in C:\xampp\htdocs\cake\cake\libs\cache\file.php on line 248

という、エラーが表示されてしまいます。このエラーを解消するには、C:\xampp\htdocs\cake\app\config\core.php を開いて修正する必要があります。

core.php の修正
/**
 * If you are on PHP 5.3 uncomment this line and correct your server timezone
 * to fix the date & time related errors.
 */
	//date_default_timezone_set('UTC');

247行目のコメントをはずしてあげれば、とりあえずエラーは解消されます。


また、core.php においては他にも2箇所修正しておきます。

203行目の Security.salt の初期値を、ユニークな英数字に。

	Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');

208行目の Security.cipherSeed の初期値を、ユニークな数字に。

	Configure::write('Security.cipherSeed', '76859309657453542496749683645');

それぞれ変更しておきます。

detabase.php の修正

最後に、CakePHP で使う、MySQL との接続に使う detabase.php の設定を行います。

C:\xampp\htdocs\cake\app\config に、『database.php.default』 というファイルがあるので、コピーして、.default を取り除いて 『detabase.php』 にリネームして……

	var $default = array(
		'driver' => 'mysql',
		'persistent' => false,
		'host' => 'localhost',
		'login' => 'user',  ♯ユーザー名
		'password' => 'password',  ♯ログインパスワード
		'database' => 'database_name',  ♯データベース名
		'prefix' => '',
	);

76行目以下の $default の値を、MySQL の設定に沿うように変更した後に保存します。

最終確認

ここまでやったら、Apache を再起動して、http://localhost/cake/ にアクセス。
恐らく、オールグリーンになっているはずです。


お疲れ様でした。

参考図書とか

フレームワークに触ったことがない人は、CakePHP 公式のブログチュートリアルをやるのが良いとは思います。といっても、チュートリアル通りにやってもうまく動かない人や、設置すら困難な人には、『CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用』をお勧めします。


CakePHPでの開発を一通り学べますが、MVCの概念やフレームワークでの開発に慣れるための本です。

フレームワークの活用方法を理解されていて、CakePHP に興味が湧いた人には、ポケットリファレンスが良いのではないでしょうか。

CakePHP1.1〜1.2 のポケットリファレンスなので、最新の 1.3 には対応していませんがこの一冊で十分すぎる内容だと思います。こっそり改訂を期待しているんですが、難しいのかなぁ。
……というか、他の CakePHP 本については紹介するのに、ちょっとだけ躊躇われる内容だったりするんですよね。