『CakePHP』を使ってみる 〜2〜 『CakePHP』をさくらインターネットに導入
『Fast CakePHP』で紹介されているサンプルをさくらインターネットに導入してみることに。
『さくらインターネット』のプレミアムプランをマルチドメインで使用している。
『CakePHP』をインストール
導入する場所は以下のようにしてみた。a
/home/theworld/www/lab/ の中身が http://lab.theworld.jp/ に相当。
『CakePHP』の公式サイトから Stable 版をダウンロード。
CakePHPのテスト用に cakephp ディレクトリを作って、さらに Fast CakePHP 用のディレクトリ fast を作った。
- 導入先: /home/theworld/www/lab/cakephp/fast/
↓ディレクトリの中身。
[/home/theworld/www/lab/cakephp/fast] ls -a . .htaccess cake index.php .. app docs vendors
mod_rewrite の設定を変更
解説によると、この画面が出たら mod_rewrite の設定に RewriteBase を追加するようにとのこと。
さくらインターネットでの設定を検索してみたら、フォーラムに以下のように書かれていたのでそのまま試してみる。
1) cake インストールフォルダの htaccess には、 "RewriteBase /cake"を追加。
2) app の htaccess には、 "RewriteBase /cake/app"を追加。
3) app\webroot の htaccess には、 "RewriteBase /cake/app/webroot"を追加。
うまく動いたようだ。
『Internal Server Error』が出る問題
ただ、この設定でインデックスにアクセスした時は問題ないのだけど、本の作業を進めていきアクションを作ってそこにアクセスする段階で『Internal Server Error』が出るようになってしまった。
さくらインターネットで 500 エラーが出るのは、PHP ファイルのパーミッションが『755』になっている場合が多い。
しかし、とりあえずインデックスは出ているしパーミッションは指定したので問題はなさそう。
『.htaccess』の設定があやしいので、いろいろと試してみた。
結果として、webroot に設置した htaccess の設定を変更したらうまく動作するようになった。
忘れてまたハマるのがイヤなので設定をメモ。
/home/theworld/www/lab/cakephp/fast/.htaccess
<ifmodule> RewriteEngine on RewriteBase /cakephp/fast RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </ifmodule>