先日、FuelPHP1.7.2のcontrollerに配置したPHPファイルが表示されない。Apacheのmod_rewriteと.htaccessを調べてみたという記事を書きました。
それからあれこれと考えましたが、どうしても自力解決ができません。なので、FuelPHPに詳しい方に頼んで、表示されない原因を調べてもらいました。
PHPファイルが表示されない3つの原因
controller直下のPHPファイルが表示されない原因の箇所は、3つあることが分かりました。
- httpd.confファイル
- .htaccessファイル
- FuelPHPのconfig.php
ただ結論から言ってしまうと、自分の場合はまだ表示されません。3番目のFuelPHPの設定について、どのように設定変更をすればいいのか、分からなかったからです。
もっとも、3番目の具体的対策が分からないからといっても、1番目と2番目の対策は、どうやら必須のようです。そこらへんのところを含んだ上で、お読みいただければと思います。
1 httpd.confファイル
Apacheの設定ファイル(httpd.conf)を変更します。AllowOverride Noneになっている部分を、Allに変更します。
#vi /etc/httpd/conf/httpd.conf <Directory "/var/www/html"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All(←Noneから変更) </Directory>
2 .htaccessファイル
デフォルトで存在するファイル、プロジェクト名/public/.htaccessをコピーして、プロジェクト直下にペースト(プロジェクト名/.htaccess)します。そのペーストした.htaccessファイルの最後に次の2行を加えます。
$vi /var/www/html/testproject/.htaccess RewriteBase /testproject/public RewriteRule ^(/)?$ index.php/$1 [L]
3 FuelPHPの設定
FuelPHPのプロジェクトを立ち上げると、fuel/app/config/config.phpというファイルが存在します。おそらくこのPHPファイルの、「どこか」を変更することになると思います。その「どこか」が分からないのですが…。
まとめ
もういちど確認です。controllerに配置したPHPファイルを表示させるためには、次の3箇所について設定を変更する必要があります。
- httpd.confファイル
- .htaccessファイル
- FuelPHPの設定
3番目の設定については具体的な変更方法は、まだ分かりませんでしたが、1番目と2番目の設定については、必須のようです。
また、今回変更した1番目と2番目の内容も、実はよく分かってなかったりします。今度確認しておきます。
〔参考サイト〕