QA@IT

apache2.4の設定について

6670 PV

CentOS 7をインストールして、Apacheの設定をしました。
テストでphpファイルをブラウザ表示しようとしたのですが、
エラーが出て表示されません。

ブラウザでアクセスるときは
192.168.1.114 でアクセスしております。

アパッチ上のバーチャル設定は、
192.168.1.114に対して
DocumentRoot /home/test/public
を設定してあります。

アパッチのログを確認したところ、
「php_value not allowed here」というエラーが出てました。
.htaccess上に設定している「php_value」が問題のようで、
これをコメントアウトするとエラーが出なくなり表示できるようなりました。

ただし、.htacess上にphp_value の設定はしたいので、
調べたところ、httpd.confに「AllowOverride All」の設定することによって
解決することが書かれていました。

ただ、httpd.confの設定は、
デフォルトの設定から以下のよう内容で既に変更してあります。
<Directory />
AllowOverride none
Require all denied
</Directory>

<Directory />
# AllowOverride none
Require all denied
AllowOverride All
Options FollowSymLinks
Options +ExecCGI
</Directory>
このように設定しているので、問題がないと思うのですが、
なぜか「AllowOverride All」が効いてないようです。

そこで試しにバーチャルホスト内で以下の設定をしました。
<VirtualHost 192.168.1.114>
DocumentRoot /home/test/public
ServerName 192.168.1.114
<Directory /home/test/public>
AllowOverride All
Options FollowSymLinks
Options +ExecCGI
</Directory>
</VirtualHost>
こちらだとエラー表示なく、phpを表示することができました。

httpd.confの設定はデフォルトの設定から、上記の部分と
バーチャル設定をしただけで他は変更していません。

なぜ、<Directory />で設定したときのものが反映されないのでしょうか?
「/home/test/public」の上の階層の「/」で設定しているのですから
設定が適用されると思っておりますが原因がわかりません。

<VirtualHost>内で毎回設定するより、<Directory />で設定した方が
一括設定できて楽なのでどうしてもこちらでやりたいと思っております。

またの中の設定が効いていないことで、
デフォルトの設定では「Require all denied」という全アクセス拒否する設定があります。
これをコメントアウトしていないにも関わらず、ブラウザ表示されるのも不思議に思っております。

ちなみにの設定については
centos6.5のapacheのバージョン2.2では問題なくできていたことで
今回のcentos7のapacheのバージョン2.4で同じ設定をしたら今回の問題にぶつかっております。

どなたか、原因と解決策がわかる方がいましたら
よろしくお願いします。

ウォッチ

この質問への回答やコメントをメールでお知らせします。