CakePHP on XAMPP でちょっとはまった
2007/02/5
仕事で CakePHP を使ってみようと思い、Cake ブログチュートリアルにしたがってブログを作ってみようとしたところ、mod_rewrite まわりではまったので作業メモを残します。ポイントは、アプリケーションの .htaccess に RewriteBase を正しく設定することでした。
肝心の CakePHP ですが、開発環境は以下の通り。
- OS: Windows XP
- サーバ: XAMPP for Windows 1.5.5
- IDE: EasyEclipse for LAMP
XAMPP は C:\Program Files\XAMPP 以下にインストールされており、Eclipse のワークスペースは D:\doc\workspace にあります。ブログアプリケーションは D:\doc\workspace\blog に作りました。
症状としては「アプリケーションへのアクセスに Apache の Alias を利用した場合に、mod_rewrite が正しく動作せず、CSSや画像が読み込まれなかった」です。
以下、作業手順です。
—–
1. Apache の設定
XAMPP の Apache は初期状態で mod_rewrite が無効になっているので、有効にする。設定ファイルの
#LoadModule rewrite_module modules/mod_rewrite.so
の行頭の # を外して mod_rewrite モジュールをロードする。
また、http://localhost/blog でブログアプリケーションにアクセスするために、エイリアス設定を行う。同時にアプリケーションで .htaccess を有効にするため、AllowOverride All を設定しておく。
Alias /blog/ "D:/doc/workspace/blog/"
<Directory "D:/doc/workspace/blog">
AllowOverride All
Allow from All
</Directory>
2. ブログアプリケーションの設定
チュートリアルにしたがって、データベース等の設定を行う。ここで、mod_rewrite の設定にはまった。上記の Alias 設定により、現在 /blog でブログアプリケーションは動作しているが、CakePHP に付属している初期状態の .htaccess は RewriteBase の記述がないため、そのままでは /blog 以下にリライトされない。そこで、.htaccess に RewriteBase を追加する。
blog/.htaccess に以下を追加:
RewriteBase /blog
blog/app/.htaccess に以下を追加:
RewriteBase /blog/app
blog/app/webroot/.htaccess に以下を追加:
RewriteBase /blog/app/webroot
以上で正しくリライトされるようになり、CSS や画像が表示された。
2007/09/8 at 5:49 pm
Rewrite baseの設定が掲載されてて助かりました。
ありがとうございました-