Apache 1.3 の設定ファイルを,Apache 2.2 へ移行する方法について簡単にまとめておく。
Apache のバージョンアップについて検討する。Vine Linux 3.2 までの標準は Apache 1.3 だった。Vine Linux 4.1 がリリースされ,標準が Apache2 となった (Apache 2.2)。Apache 1.3 と Apache 2.2 では,設定ファイルの内容が大きく違う。Apache 1.3 の設定ファイルを Apache 2.2 に持ち込んで,直していくのは間違いである。とてつもなく時間がかかるし,ハマることになる。
この記事は,Vine Linux 3.2, Apache 1.3.33 から Vine Linux 4.1, Apache 2.2.3 へ設定ファイルを移行するための方針についてのメモである。Vine Linux 4.1 は Windows XP のバーチャルPCで動作テストを行いつつ,作業をすすめている (nlog(n): Virtual PC 2007 で Vine Linux)。バーチャルPCは,「状態を保存する」で終了することができるので,次に起動する時間を短縮することができて嬉しいのだ。
設定ファイルは,Vine 3.2 では /etc/httpd/conf/httpd.conf,Vine 4.1 では /etc/apache2/conf/httpd.conf (または apache2.conf) となっている。ログが保存されるディレクトリは,Vine 3.2 では /var/log/httpd だったが,Vine 4.1 では /var/log/apache2 となっている。
移行の基本方針は 9.2.2. Apache HTTP Server 1.3 設定ファイルを 2.0 に移行する に従うのがよい。
最初に,Apache 1.3 で,オリジナルの設定ファイルと最新の設定ファイルを比較して違っている部分を抜き出す。
追加されている行の行頭には「+」,削除されている行の行頭には「-」がつく。これを Apache 2.2 の設定ファイルに反映する。ほとんどのディレクティブは変更がないので,そのまま書いてしまってよい。一番大きな変更は,Port ディレクティブの廃止だろう (9.2.2.1.1. インターフェースとポートのバインド)。Apache 1.3 では,
と記述していた部分を,Apache 2.2 では,
と書くことになる。
Vine Linux 4.1 の Apache 2.2 文法チェックは,起動スクリプト
あるいは,実行ファイルを直接たたいて
行うことができる。
私は最初,Apache 1.3 の設定ファイルを Apache 2.2 の設定ファイルにコピーして,エラーが出た部分だけ直していこうとした。しかし,これは大きな間違いだった。ディレクティブとしては大きな違いはないが,モジュール名が変わっていることがあるのである。例えば,次のようなものがある。
上のモジュールが,次に変わっているのである。
config_log_module が log_config_module になっていることに注意。そして,エラーとしては,「モジュール名が違うよ」と出るとは限らない。したがって,モジュールをチェックしながら作業するのは効率が悪いのである。
その他に注意する点は,Apache 2.2 の設定ファイルは,外部の設定ファイルを取り込むようになっているということである。
Include ディレクティブにより,/etc/apache2/conf.d ディレクトリ内の *.conf にマッチする設定ファイルが読み込まれる。例えば,SSL 関連の設定ファイルは conf.d/ssl.conf となるので,conf/httpd.conf 内で SSL の設定を行うと,2重に宣言することになってしまい,
のようなエラーを引き起こすことになるので注意が必要だ。このエラーには以前悩まされたことがある (nlog(n): Vine Linux 4.1 への移行を試すが元に戻す)。
お盆休みに Vine Linux 3.2 から 4.1 に移行するぞ。また断念することのないようにしたい (nlog(n): Vine Linux 4.1 への移行を試すが元に戻す)。ぬをーっ。
Posted by n at 2007-08-12 01:49 | Edit | Comments (0) | Trackback(0)
Master Archive Index
Total Entry Count: 1957