概要
こんな設定。
確認したのはRHEL7/CentOS7の標準のhttpd (2.4.6)とsclのhttpd24-httpd (2.4.27)
httpd.conf 抜粋
Loglevel warn # 他は省略 <VirtualHost *:80> DocumentRoot /hoge <Location /> AllowOverRide All </Location> Alias /foo /path/to/foo Alias /foo/hoge /path/to/hoge </VirtualHost>
警告
この設定には3つの警告がある。
- DocumentRoot /hoge が存在していない
- Locationで使用できないAllowOverRide を設定している
- Alias /fooが優先されてAlias /foo/hogeが効かない
configtest
$ apachectl configtest AH00112: Warning: DocumentRoot [/hoge] does not exist Syntax OK
DocumentRoot についてしか警告が出ない。
解決した設定内容
試行錯誤した結果、Virtualhost内に任意のLoglevelを設定すると警告が出ることがわかった。
<VirtualHost *:80> DocumentRoot /hoge ## Loglevel を問題の設定より前に書く LogLevel warn <Location /> AllowOverRide All </Location> Alias /foo /path/to/foo Alias /foo/hoge /path/to/hoge </VirtualHost>
httpd.conf 内に既に同じLogLevel warnを設定しているけど、この設定を足すと
$ apachectl configtest AH00112: Warning: DocumentRoot [/hoge] does not exist [Wed Sep 05 17:59:45.814156 2018] [core:warn] [pid 9709] AH00114: Useless use of AllowOverride in line 359 of /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf. [Wed Sep 05 17:59:45.814267 2018] [alias:warn] [pid 9709] AH00671: The Alias directive in /opt/rh/httpd24/root/etc/httpd/conf/httpd.conf at line 363 will probably never match because it overlaps an earlier Alias. Syntax OK
※ forum とかbug情報等はまだ見てない。