先日、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番目の内容も、実はよく分かってなかったりします。今度確認しておきます。
〔参考サイト〕
