2012年4月23日月曜日

cakePHP2.1を導入する

早速自宅のPCにcakePHP2.1.1を導入してみた。

ダウンロードはここから

ちなみに、OSはLinuxのCentOS6。既にPHPとMysqlとapacheはインストール済。
PHPのヴァージョンは5.3.3、Mysqlは5.1.61、apacheは2.2.15。
CakePHP2.x系を導入する為にはPHP5.2.8以上が必要らしい。

というわけで、早速ダウンロード→解凍。Windowsサーバーの場合はそのままhtdocs内にぶっこめばOK。
$ unzip cakephp-cakephp-2.1.1-0-g43cf2f0.zip
.(リストがずらずらずらっと続く)
.
$ mv cakephp-cakephp-43cf2f0 /var/www/html/cake20
(わかりやすいようcake20というフォルダ名にした)
$ /sbin/restorecon -R /var/www/html
(SELinux対策でcake20のファイルタイプを/var/www/htmlと同一のものに)
http://localhost/cake20/にアクセス。
なんか赤いのやら黄色いのやらがわらわらと…。
リファレンスを見る限り、これらが全部緑色になるようにしないといけないみたい。

とりあえず、上から。
Warning (512) /var/www/html/cake20/app/tmp/cache/ is not writable [CORE/Cake/Cache/Engine/FileEngine.php, line 320]
writableって書いてるからそこの書込み権限がないって怒ってらっしゃるのだろう。
$ chmod 707 /var/www/html/cake20/app/tmp/cache
ってやったら表示は消えた。
(この表示はWindows環境の場合はでないかも)
Notice (1024) Please change the value of 'Security.salt' in app/Config/core.php to a salt value (略)
Notice (1024) Please change the value of 'Security.cipherSeed' in app/Config/core.php to a numeric (digits only) seed value (略)
これもリファレンスを見ると、app/Config/core.phpSecurity.saltSecurity.cipherSeedの値を前者は好きなランダム文字列に、後者は数字に変えればいいらしい。 それぞれcore.phpの187行目と192行目にあった。
[app/config/core.php]
/**
 * A random string used in security hashing methods.
 */
Configure::write('Security.salt', '(ごじゃごじゃした文字列に変更)');

/**
 * A random numeric string (digits only) used to encrypt/decrypt strings.
 */
Configure::write('Security.cipherSeed', '(長い数字に)');
これらは推測できないものなら何でもいいらしい。それで2つの警告文面も消えた
Your tmp directory is NOT writable.
最初と同じで、tmpの書込み権限がないって怒ってる。
$ chmod 707 /var/www/html/cake20/app/tmp
で消えてくれた。あと、tmp内にある全てのフォルダに書込み権限をつけた方がいいみたい。
Your database configuration file is NOT present.
Rename APP/Config/database.php.default to APP/Config/database.php
そのまんまapp/configフォルダの中の「database.php.default」の名前を「database.php」に変えろって言ってるのね。
これがデータベース接続する為に使うファイルで、接続設定もここで行う。
[app/config/database.php.default]
/**
ライセンス情報や設定の仕方などが並ぶ。
編集する箇所は60行目あたりから
**/
class DATABASE_CONFIG {

 public $default = array(
  'datasource' => 'Database/Mysql',
  'persistent' => false,
  'host' => 'localhost',
  'login' => '(ユーザー名)',
  'password' => '(パスワード)',
  'database' => 'cakephp', //データベース名
  'prefix' => '',
  'encoding' => 'utf8', //文字コード。コメントアウトされてるから外す
 );
(以下略)
datasource
使用データベースを記載。PostgreSQLを使う場合は「Database/Postgres」(PostgreSQLのバージョンは7以上)。それらは30行目に書いてる。

persistent
永続的接続にするかどうか。すれば当然負荷がかかる。しない場合はfalse。

host
接続ホスト。ローカル環境だから今回はlocalhost。

login
password
接続に使うユーザー名とパスワードを記載。

prefix
指定すると、全てのテーブルの前にその文字をつける、らしい。ひとつのデータベース内に複数のテーブルを作成していった際わかりやすいようにする為の処置かな。
設定した頭の文字は、cakePHP内では省略して記載できるようになるっぽい(DBのテーブル名はちゃんと指定しないとだめぽだけど)

encoding
ここを指定することでSQL文の「set names (文字コード);」を自動でしてくれるらしい。


ここまで設定して再びhttp://localhost/cake20/にアクセスしてみたら、全部綺麗な緑色が咲いてくれました。

導入自体はカンタン。データベースのパスワードをvar/www/html内に入れるあたりなどちょっとセキュリティ関連が気になるところだけど、今はローカル環境での導入だからもうちょっと知識がついてから考えることにしよ。

0 件のコメント:

コメントを投稿