Apache Web サーバについて。
Apache はバージョン 1.x と2.x で設定に微妙に違いがある。特に断りがない限り、2.x を中心に扱う。
There is no child page in ' Apache/'
逆引きTips 
BASIC認証を使うには 
AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /dev/null
AuthName "Inside page"
AuthType Basic
require valid-user
ユーザーを追加するには
htpasswd /etc/httpd/conf/.htpasswd USERNAME
パスワードを求められる。
ユーザーを削除するには
htpasswd -D /etc/httpd/conf/.htpasswd USERNAME
拡張子.htmlをPHPで処理するには 
httpd.confか.htaccessに
AddHandler php5-script .html
起動している apache のバージョンを調べるには 
# ps -ef
で httpd を探し
# /usr/sbin/httpd -v
とするのがよい。
phpinfo() には表示されない。
レスポンスヘッダの Server: にバージョンが表示されることもあるが、設定により表示しないこともできる(表示しない方がセキュリティ上好ましい)
アクセスされたときのホスト名によってサイトを切り替えるには 
バーチャルホストを使う。
www.betatechnology.jp → /var/www/html
www.hoge.jp → /var/www/hoge
と対応づける例:
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName www.betatechnology.jp
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/hoge
ServerName www.hoge.jp
</VirtualHost>
別ポートで別サイトを立ち上げる 
Listen 81
<VirtualHost *:81>
DocumentRoot /virtual/www
<Directory "/virtual/www">
Options Includes ExecCGI FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
VirtualHost>の中ではほとんどのディレクティブが使える。
CentOS 
設定ファイル
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
再起動
service httpd restart
設定ファイル再読み込み
service httpd reload
ログファイル
/var/log/httpd/access_log
/var/log/httpd/error_log
Debian 
再起動
?
設定ファイル再読み込み
?
ログファイル
?
FreeBSD 
再起動
?
設定ファイル再読み込み
?
ログファイル
?
mod_rewrite 
URL を書き換えるモジュール。
.htaccessの例 
# .htaccess で mod_rewrite を使うために必要
Options +FollowSymLinks
RewriteEngine on
#RewriteBase /test/mod_rewrite
# *.txt → *.php に書き換える
RewriteRule ^(.*)\.txt$ $1.php
ユーザーディレクトリの下では RewriteBase が必須?
物理ディレクトリとURLが普通に対応していればRewriteBaseは書かなくてもよい。
正しく rewrite されているか確認する/デバッグする) 
/etc/httpd/conf.d/rewrite.conf を次のように作成する。
# Created: 2009-12-26 aoyama
#
# mod_rewrite settings
#
# log path
RewriteLog "/var/log/httpd/rewrite_log"
# log level (0-9)
RewriteLogLevel 5
1.3 では .htaccess でも RewriteLog ディレクティブが使えたようだが、2.2 では使えない。RewriteLogLevel は0~9まで使えるが、通常は3もあれば十分だろう。