1. TOP
  2. Webサービス
  3. FuelPHP
  4. FuelPHP1.7.2のcontrollerに配置したPHPファイルが表示されない3つの原因

FuelPHP1.7.2のcontrollerに配置したPHPファイルが表示されない3つの原因

|

web_dev

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

〔参考サイト〕