Fedora(on VMware on WinXP)にApacheをインストールすると、たいていの場合、httpd.conf
を書き換えずとも動いてしまうのですが、phpを走らせるときにたまに必要になる.htaccess
を有効にしたり、インデックス表示をオフにしたり、デフォルトのcharsetをオフにしたりといった設定をしておいたほうがよさそうなので、設定の備忘録。以下、指定のない限りはhttpd.conf
ファイルの設定です。
まずは、<Directory "/var/www/html">
ディレクティブ内の設定。
# Options Indexes FollowSymLinks Options FollowSymLinks # AllowOverride None AllowOverride All
Options
ディレクティブは、特定のディレクトリに対して、使用できる機能を指定できます。初期設定ではIndexes
とFollowSymLinks
が有効になっていました。Indexes
は、ディレクトリへのアクセス時にインデックスファイルがない場合にmod_autoindex
にファイル一覧を自動生成してもらうオプションです。昔はよく使われていた機能ですが、最近ではあまり見かけなくなりました。思わぬセキュリティホールになりかねないのでこのオプションは無効にしておきましょう。FollowSymLinks
は、このディレクトリ内でシンボリックリンクを辿ることを許可します。私はたまにシンボリックリンクを使うことがあるので、このオプションは残したままにします。これ以外のオプションはApacheのOptions
ディレクティブの解説を参照のこと。
AllowOverride
ディレクティブは、.htaccess
ファイルを用意したときに、どの機能を許可するのかを指定できます。デフォルトではNone
になっているので、.htaccess
ファイルは無視されます。いくつかの指定できるキーワードがありますが、どの機能も使いそうな気がするので、ここではAll
を指定してすべての機能が使用できるようにしておきます。
次は、AddDefaultCharset
ディレクティブをオフにします。
#コメントアウト #AddDefaultCharset UTF-8
AddDefaultCharset
ディレクティブは、ファイルのコンテントタイプがtext/plain
かtext/html
のときに、強制的に文字エンコードを指定する機能です。<meta>タグで指定した文字エンコードも無効にする可能性があります。思わぬバグの原因になりかねないので、Off
を指定するか、ディレクティブ自体をコメントアウトしてしまいます。昔はNone
というキーワードを指定する人が居たようですが、そのキーワードは定義されていないので指定できません。
おまけで、phpのソースコードを表示するのによく用いられる拡張子phps
も有効にします。設定ファイルは、
/etc/httpd/conf.d/php.conf
です。
#コメントアウトをはずす AddType application/x-httpd-php-source .phps
phpの設定ファイルが別途にあるのが少し戸惑いました。