Prev / Next / /home/pochi/ChangeLog

Apache の Include はコロン(:)を含むファイルを読みこんでくれない[apache]

2013-09-09

ちょっとハマった。
それっぽいエラーが出ないから気付くのに時間がかかったよ。
Apache の設定で Include 構文にこんな罠あるなんて。
Apache のマニュアルにも書いてない。

core - Apache HTTP Server Include Directive
http://httpd.apache.org/docs/current/en/mod/core.html#include

Shell-style (fnmatch()) wildcard characters can be used in the filename ...


としか書いてない。
該当しそうなソースを見ても、コロンが駄目みたいな記述はないのよね。

apr_fnmatch.c
http://svn.apache.org/repos/asf/apr/apr/trunk/strings/apr_fnmatch.c

このソースに書いてあるリンクにも特にコロンが駄目みたいな記述はない。
たとえば以下とかね。

Filename pattern matches defined in section 2.13, "Pattern Matching Notation"
from chapter 2. "Shell Command Language"
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_13

ソースをざっと見ても駄目そうなところはない。
もうちょっと追えば見付かるのかもだけど。


ググってみると、こんなのが見付かった。
ちなみにググるときには、「:」でググっても出てこないので、
「コロン」「colon」でググるべし。

Debian Bug report logs - #676610
silently ignores config files with a colon in its name
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=676610

これ、ずばり書いてあるけど、まだ解決してない問題っぽいなあ。
しかも、IPアドレス.conf みたいなのを読みこませたい、ってのも
私がやりたかったことと一緒だ。
IPv6のアドレスはコロンを使うんだよね。
困ったもんだ。


ただ、どうやらコロンはファイル名には使っちゃいけない文字っぽい。
UNIXだと問題ないんだけど、Windowsや、Macだと駄目みたいね。

Wikipedia - ファイル名

コロン:
ドライブレターに使用される、またはパス名分離符であるなどの理由から、
Windows、AmigaOS、Mac OSでは使用不可能。


この辺を考慮してるのかもね。


エラーが出てないのでトラブルシュートに手間取ったんだけど、
vhost が読みこまれないことで気付くことができた。
具体的には、apacheの動作するユーザになって、以下のコマンドを実行。

su -s /bin/bash www-data


apachectl -t -D DUMP_VHOSTS


読みこんだ設定ファイル一覧を出してくれるコマンドもあれば良いんだけどなあ。

permlink