てな訳で、ここ数日間のまとめ。
インストール
apache をバイナリパッケージでインストールする。apr、db4、expat のパッケージも必要。以下のコマンドで全て関連パッケージもインストールされる。
…/www/apache-2.0…だと、関連パッケージが同じ www の中に無いのでインストールが失敗するので、…/All/apache-2.0…を使うこと。
pkg_add ftp://ftp.jp.netbsd.org/pub/NetBSD/packages/1.6.2/i386/All/apache-2.0.49nb1.tgz
インストールされるパッケージは以下の通り。
db4-4.2.52nb1 Berkeley DB version 4 from Sleepycat Software expat-1.95.7 XML parser library written in C apr-0.9.5.2.0.49 Apache Portable Runtime openssl-0.9.6m Secure Socket Layer and cryptographic library perl-5.6.1nb10 Practical Extraction and Report Language apache-2.0.49nb1 Apache HTTP (Web) server, version 2
あと、wwwグループ、wwwユーザが追加される。
自動起動の設定
インストール後、/usr/pkg/etc/rc.d に用意される apache 起動スクリプトを見て、/etc/rc.local に apache=YES apache_start="start" を追加する。ただ、/usr/pkg/etc/rc.d の中身は /etc/rc.d に 755 で置くこと。
Apache の設定ファイル修正
/usr/pkg/etc/httpd/httpd.conf を修正する
- ServerAdmin を webmaster@ドメイン名 に修正。(webmaster は /etc/mail/aliases に入っている root に転送される)(ドメイン名は /etc/mail/local-host-names に入っているドメイン名)
- ServerName を www.ドメイン名 に修正(ホスト名が www じゃない場合に www に見せるために行う)
に続く Options を FollowSymLinks Includes ExecCGI Indexes と3つ追加(IncludesはSSI、ExecCGIはCGI、Indexesは一覧表示の許可、最後は無くても良いカモ。) - さらに続く AllowOverride を All に変更(.htaccess で全ての設定を許可する)
- DirectoryIndex に index.cgi を追加(ユーザ希望による)
- AddDefaultCharset ISO-8859-1をコメントにして無効に(日本語ドキュメントが化ける原因になる)
- AddHandler cgi-script .cgiをコメントを外して有効化(CGIを利用可能に)
- AddType text/html .shtmlをコメントを外して有効化
- AddOutputFilter INCLUDES .shtmlをコメントを外して有効化
- XBitHack onを上記の下に追加(SSI及び実行属性のついた.htmlをSSIとして実行可能に)(ただし、.htaccess内でAddTypeで.htmlを再定義するとXBitHackは無視されるので注意)
ログのローテーションの設定
-rw-r--r-- 1 root wheel 504539 Jul 8 10:43 access_log -rw-r--r-- 1 root wheel 7412 Jul 8 11:32 error_log
ログのローテーションは/etc/newsyslog.confの設定を変更する
# $NetBSD: newsyslog.conf,v 1.15 2002/03/29 02:47:26 heinz Exp $ # # Configuration file for newsyslog(8). # # logfilename [owner:group] mode ngen size when flags [/pidfile] [sigtype] # /var/cron/log root:wheel 600 3 10 * Z /var/log/aculog uucp:dialer 640 7 * 24 Z /var/log/authlog 600 5 30 * Z /var/log/kerberos.log 640 7 * 24 ZN /var/log/lpd-errs 640 7 10 * Z /var/log/maillog 600 7 * 24 Z /var/log/messages 644 5 30 * Z /var/log/wtmp 644 7 * 168 ZBN /var/log/xferlog 640 7 250 * Z
ここにApacheのログの設定を追加する。書式は以下の通り。
- 先頭が#ならコメント行
- 第1フィールドはログファイルの完全パス名
- 第2フィールドはログファイルのオーナー情報(省略可能)
- 第3フィールドはログファイルのパーミッション(元ファイルと同じもので良い)
- 第4フィールドは保存する世代数
- 第5フィールドはログを更新する大きさをKBで指定(サイズを指定しない場合は *)
- 第6フィールドはログを更新する時間を指定(時間を指定しない場合は *)
- 第7フィールドはログを圧縮する場合にZを、ログ更新メッセージを入れる場合はBを、ログ更新時にシグナルを送らない場合はNを記述
- 第8フィールドはログを出力するデーモンのpidファイルを指定(省略可能)
- 第9フィールドは送るシグナルを指定(省略可能、デフォルトはSIGHUP)
Apahce にログファイルが変更されたことを伝えるのに SIGUSR1 というシグナルを送る必要があります。UNIX(POSIX) の SIGUSR1 の値が 30 番なのでその値を書いてください。
/var/log/httpd/access_log 644 7 * $MLD4 Z /var/run/httpd.pid SIGUSR1 /var/log/httpd/error_log 644 7 * $MLD4 Z /var/run/httpd.pid SIGUSR1
$MLD4は毎月の最終日の午前4時にログを更新する意味です。