fuelPHP:ApacheのAllowOverrideを忘れずに[初級]


fuelPHPはPHP5.3.3以上で動作するオープンソースのWEBアプリケーションフレームワークで、HMVCモデルを用いています。
それまで海外では主流だったCodeIgniterの開発者がスピンアウトして開発したフレームワークで比較的新しいこともあり、他のフレームワークのいいとこ取りをした機能と軽量なコードが売りとなっています。MITライセンスで提供さています。

というわけで、ちょっと使ってみようと思ってインストールしたものの、エラーが出てWelcomeページも出てこない、なんていう初歩的な問題に出くわしたときの備忘です。

状況としては、マニュアルどおりにfuelPHPをインストールしてApacheを起動してインストールした公開ページのURLにアクセスするのですが、
httpステータスが404(Not Found)を返す
という状況です。Apacheのアクセスログを確認すると、
[Tue Mar 10 13:50:57 2015] [error]

File does not exist: C:/pub/home/nicos/fuel-test/fuelphp-1.7.2/public/xxx
と表示されていて、確かに対象ファイルの存在をApacheが認識していないようです。
fuelPHPは標準インストールして公開ページのURLにアクセスするとWelcomページが表示されるはずなのですが、表示されません。

fuelPHPのマニュアル通りにインストールしたのですがなぜだろう、としばらく調べた結果、問題はApacheの設定でした。

fuelPHPの標準URLの場合、
http://example.jp/プロジェクト/index.php/コントローラー/アクション/URLパラメータ
ですが、.htaccessでmod_rewriteによってindex.phpを入力しなくても処理してくれるような設定がコメントアウトされた状態で用意されているので、このコメントをはずすと、
http://example.jp/プロジェクト/コントローラー/アクション/URLパラメータ
と、index.phpなしでもアクセスできるようになります。
これで公開ページのトップページのURLにアクセスすると、fuelPHPのWelcomeページが表示されます。

ところがこの.htaccessはApacheのAllowOverrideを許可していないと、有効になりません。
他のフレームワークでも同様だと思いますが、Apacheの設定で公開ディレクトリに対して、
AllowOverride ALL
などにして.htaccessが有効になるようにすれば問題は解決です。
他のフレームワークでも同様だと思いますが、意外に忘れやすい設定項目です。

タグ: , ,
カテゴリー: PHP

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

カテゴリー