モジュールのマニュアル
http://httpd.apache.org/docs/2.2/ja/mod/
オプション
$ sudo /etc/init.d/httpd restart
$ sudo /etc/init.d/httpd graceful
gracefulオプションは現在実行中のプロセスを待ってから再起動する
設定逆引き
phpファイルをテキストで表示
AddHandler text/plain .php
強制的にphpとして実行
ForceType application/x-httpd-php
.htaccessを許可/禁止する
AllowOverride All # 許可
AllowOverride None # 禁止
ディレクトリアクセスしたときにindex.htmlを表示する
DirectoryIndex index.html
DocumentRootのディレクトリ以外を公開したい
Aliasを使う
Alias /hoge "/path/to/htdocs"
VirtualHostを使う
allow from all
ディレクトリアクセスしたときに中身を表示しない
Options -Indexes
表示したい場合はハイフン"-"なしで
シンボリックリンクをたどるのを許可する
Options FollowSymLinks
hogeをリクエストしてhogeがなければhoge.*を表示するようにする
Options MultiViews
Basic認証をかける
AuthType Basic
AuthName "authenticate required"
AuthUserFile /path/to/.htpasswd
Require valid-user
他の設定ファイルを読み込む
Include /path/to/another/httpd.conf
phpファイルだけに適用させる
...
IP直打ちの場合は別のVirtualHostを表示したい
IP直打ちするとVirtualHostの一番最初の設定が表示される。
てきとーなやつを先頭に入れるだけでよい。
VirtualHostを設定したのにIP直打ちで来る人を残念賞にする方法
http://d.hatena.ne.jp/ir9Ex/20071014/11923...
キャッシュクリア
Header set Pragma no-cache
Header set Cache-Control no-cache
画像等不要なファイルはアクセスログを取らないようにする
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)|(js)|(ico)$" nolog
CustomLog "/path/to/log" combined env=!nolog
CustomLogで否定しないやり方も考えてみた。
URIのマッチングに否定戻り読み言明を使った。
SetEnvIf Request_URI "(?こうすれば、特定のディレクトリのみ別のログにするというのも可能
(上記SetEnvIfをDirectoryディレクティブに追加すればいい)
[^\.(gif)|(jpg)] でいけるかなと思ったけど、文字に分解されちゃうのでダメだった。
アクセスログを日別に記録する
CustomLog "|/usr/sbin/rotatelogs /path/to/log/access.%Y%m%d.log 86400 540" combined
ログにPHPから情報を追加する
http://neta.ywcafe.net/000607.html
apache_note("originallog", $val);
LogFormat "%h %l %u %t \"%r\" %>s %b %{originallog}n" common
メモ
・同じパスのDirectoryディレクティブを2つ書くと、常に後に記述した方のみが適用され、前の方の設定は失われるっぽい。