前回のXAMPPその他が導入されていることが前提。
今回使用したソフトのバージョン
CakePHP 1.2.0.7296 RC2
今回はPHPで有力なフレームワークのひとつであるところのCakePHPをインストールしてみる。
フレームワークとは何かというと、簡単に言うと簡単にブログを作成できるソフトである。
具体的にはMVCが云々とかO/Rマッパーがどうたらとかいう話になるのだが、そういうことはあまり気にしない。
一口にフレームワークといってもZend公式のZend Frameworkや純和製のEthna等多種あるのだが、その中でもCakePHPは導入までのコストが最も低いといわれている。
とはいえ幾つか躓くところがあるので試してみた。
まずPHP自体の設定を行う。
初期設定では困る部分があるので、php.iniを編集する必要があるのだが、XAMPPのphp.iniはC:\xampp\php\php5.iniでもC:\xampp\php\php4\php.iniでもない。
C:\xampp\apache\bin\php.iniである。
では前者は何のためにあるかというと、XAMPP付属のPHPSwitchを使用してPHP4とPHP5を入れ替えた際にC:\xampp\apache\bin\php.iniに上書きされるのだ。
従ってC:\xampp\apache\bin\php.iniを編集後、C:\xampp\php\php5.iniに上書きする。
ちなみにC:\xampp\php\php.iniはダミーだ。騙されるな。
該当部分を以下のように編集。
magic_quotes_gpc = Off short_open_tag = Off error_reporting = E_ALL display_errors = On session.use_only_cookies = 1 mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.encoding_translation = Off mbstring.http_input = pass mbstring.http_output = pass mbstring.substitute_character = none mbstring.detect_order = EUC-JP,UTF-8,SJIS,JIS |
CakePHPをダウンロード。
http://cakephp.org/
インストールはhtdocs以下に解凍するだけ。
今回はC:\xampp\htdocs\src\php\fw\cakeに保存した。
MTをインストールした際ディレクトリを適当に選んだせいでディレクトリ構成が美しくないことになっているが、まあ気にしない。
早速ブラウザからアクセス。
http://localhost/src/php/fw/cake/
「Your database configuration file is not present.」
「CAKEPHP_ROOT/app/tmp/cache/ is not writable [CORE/cake/libs/cache/file.php, line 263] Your tmp directory is NOT writable.」
以上のような2つのエラーが表示された。
まず前者はDBにアクセスできないということなので、その設定を行う。
C:\xampp\htdocs\src\php\fw\cake\app\config\database.php.defaultをdatabase.phpにコピー、そしての一番下を変更。
var $default = array( 'driver' => 'mysql', 'persistent' => false, 'connect' => 'mysql_pconnect', 'host' => 'localhost', 'login' => 'login', 'password' => 'pass', 'database' => 'cakephp', 'prefix' => '', 'schema' => 'public', 'encoding' => 'utf8' ); |
ついでにXAMPPのPhpMyAdminからデータベース「cakephp」を作成しておく。
後者は、セキュリティ通信使用時の暗号化キーを設定せよという意味である。
C:\xampp\htdocs\src\php\fw\cake\app\config\core.phpの150行目付近、
Configure::write('Security.salt', '***************************************'); |
となっている部分のキーを適当に変更する。
わかりやすい内容にしてしまうと簡単に解読されてしまうので注意。
適当にランダム文字列を作成した。
再度ブラウザからアクセスすると、無事にエラーメッセージが消えた。
Linuxの場合は一部ディレクトリのパーミッション設定が必要になるはずだが、今回はWindows環境なのでその必要はないようだ。
しかしスタイルシートやイメージが読み取れていない。
ソースを覗くと
<img src="/src/php/fw/cake/img/cake.power.gif">となっていた。
しかし実際にファイルが存在する場所はC:\xampp\htdocs\src\php\fw\cake\app\webroot\img\cake.power.gifである。
.htaccessでこのずれを修正するので、httpd.confで.htsccessによる操作を許可する。
C:\xampp\apache\conf\httpd.confの該当行を修正。
LoadModule rewrite_module modules/mod_rewrite.so AllowOverride All |
ブラウザからアクセスすると、ようやくスタイルが適用されて見えるようになった。
本来なら.htaccessによる制御を書かねばならないのだが、CakePHPでは最初から書いてあるので何もせずとも問題はない。
今回はあっさり成功してしまった。