Apache 1.3.31へ移行
今までApacheの1.3.28を使ってきたのですが、ここのところApacheの調子がよくなかったので、1.3系で最新のものに入れ替えてみました。調べてみると、どうやら1.3.29以前で重大なバグが存在していたようです。
今回作成したApacheは以下のような構成にしました。Apache_1.3.31 + OpenSSL-0.9.7d + mod_ssl-2.8.17-1.3.31 + mod_perl-1.29(Perlは5.8.0) + mod_ruby-1.2.0(Rubyは1.8.0)で、mod_ssl、mod_perl、mod_rubyはすべてDSOではなくビルトインにしました。ターゲットはMacOSX 10.2.8です。
手順は続きをどうぞ。
1.Apacheのソースダウンロード
$ cd /usr/local/src
$ wget http://www.meisei-u.ac.jp/mirror/apache/dist/httpd/apache_1.3.31.tar.gz
$ tar zvxf apache_1.3.31.tar.gz
$ wget http://www.meisei-u.ac.jp/mirror/apache/dist/httpd/apache_1.3.31.tar.gz
$ tar zvxf apache_1.3.31.tar.gz
2.OpenSSLのダウンロードとコンパイル
$ cd /usr/local/src
$ wget http://www.openssl.org/source/openssl-0.9.7d.tar.gz
$ tar zvxf openssl-0.9.7d.tar.gz
$ cd openssl-0.9.7d
$ sh config no-idea no-threads -fPIC
$ make
$ make test
$ wget http://www.openssl.org/source/openssl-0.9.7d.tar.gz
$ tar zvxf openssl-0.9.7d.tar.gz
$ cd openssl-0.9.7d
$ sh config no-idea no-threads -fPIC
$ make
$ make test
OpenSSLのコンパイル・オプションはmod_sslの説明によると、Apacheはマルチスレッド動作しないのでno-threads、-fPICは今回は違いますがDSOにするときのみ重要らしいです。no-ideaは調べてません。
3.mod_sslのダウンロードとApacheへのビルトイン
$ cd /usr/local/src
$ wget http://www.modssl.org/source/mod_ssl-2.8.18-1.3.31.tar.gz
$ tar zvxf mod_ssl-2.8.18-1.3.31.tar.gz
$ cd mod_ssl-2.8.18-1.3.31
$ ./configure --with-apache=../apache_1.3.31
$ wget http://www.modssl.org/source/mod_ssl-2.8.18-1.3.31.tar.gz
$ tar zvxf mod_ssl-2.8.18-1.3.31.tar.gz
$ cd mod_ssl-2.8.18-1.3.31
$ ./configure --with-apache=../apache_1.3.31
4.mod_perlのダウンロードとビルトイン
$ wget http://perl.apache.org/dist/mod_perl-1.29.tar.gz
$ tar zvxf mod_perl-1.29.tar.gz
$ cd mod_perl-1.29
$ perl Makefile.PL \
EVERYTHING=1 \
APACHE_SRC=../apache_1.3.31/src \
USE_APACI=1 \
PREP_HTTPD=1 \
DO_HTTPD=1
$ make
$ make install
$ tar zvxf mod_perl-1.29.tar.gz
$ cd mod_perl-1.29
$ perl Makefile.PL \
EVERYTHING=1 \
APACHE_SRC=../apache_1.3.31/src \
USE_APACI=1 \
PREP_HTTPD=1 \
DO_HTTPD=1
$ make
$ make install
mod_perlのコンパイルオプションについては、INSTALLというファイルに詳しく書いてあります。
5.mod_rubyのダウンロードとビルトイン
$ wget http://modruby.net/archive/mod_ruby-1.2.0.tar.gz
$ tar zvxf mod_ruby-1.2.0.tar.gz
$ cd mod_ruby-1.2.0
$ ./configure.rb --with-apache=../apache_1.3.31
$ make
$ make install
$ tar zvxf mod_ruby-1.2.0.tar.gz
$ cd mod_ruby-1.2.0
$ ./configure.rb --with-apache=../apache_1.3.31
$ make
$ make install
6.(MacOSXだけ)libgdbmのダウンロードとコンパイル。これはmod_sslをいれることによってDBMのライブラリが必要になるのですが、MacOSXのDBMのライブラリはバグを含んでいるらしい(詳細はここ)ので、GNUによるフリーのDBM、GDBMをかわりに使用することにします。
$ cd /usr/local/src
$ wget ftp://ftp.gnu.org/gnu/gdbm/gdbm-1.8.3.tar.gz
$ tar zxvf gdbm-1.8.3.tar.gz
$ cd gdbm-1.8.3
$ cp /usr/share/libtool/config* .
$ ./configure
$ make
$ sudo make install
$ sudo ln -s /usr/local/lib/libgdbm.a /usr/local/lib/libdbm.a
$ wget ftp://ftp.gnu.org/gnu/gdbm/gdbm-1.8.3.tar.gz
$ tar zxvf gdbm-1.8.3.tar.gz
$ cd gdbm-1.8.3
$ cp /usr/share/libtool/config* .
$ ./configure
$ make
$ sudo make install
$ sudo ln -s /usr/local/lib/libgdbm.a /usr/local/lib/libdbm.a
最後のシンボリックリンク作成はApacheのコンパイル中にリンカスクリプト(ld)に-ldbmというパラメータが渡されることによっておこるエラーへの対策です。
7.Apacheのコンパイルとインストール
$ cd /usr/local/src
$ cd apache_1.3.31
$ export SSL_BASE=../openssl-0.9.7d
$ ln -s src/modules/perl/libperl.module src/modules/perl/libperl.a #もしかしたら必要かも
$ ./configure --with-layout=Apache \
--enable-module=ssl --enable-module=so \
--activate-module=src/modules/perl/libperl.a --enable-module=perl \
--activate-module=src/modules/ruby/libruby.a --enable-module=ruby
$ make
$ make install
$ cd apache_1.3.31
$ export SSL_BASE=../openssl-0.9.7d
$ ln -s src/modules/perl/libperl.module src/modules/perl/libperl.a #もしかしたら必要かも
$ ./configure --with-layout=Apache \
--enable-module=ssl --enable-module=so \
--activate-module=src/modules/perl/libperl.a --enable-module=perl \
--activate-module=src/modules/ruby/libruby.a --enable-module=ruby
$ make
$ make install
今回はssl、perl、rubyのほかにSharedObjectのモジュールを有効にしました。また--with-layout=Apacheでは/usr/local/apacheにログや設定ファイルも含めてすべてインストールされます。config.layoutをみれば色々と書いてあると思います。
MacOSXでの注意点がひとつ。configureでheadというコマンドの使い方がだらだら表示されるかもしれませんが、その場合はPerlのLWPというモジュールが、もともとあったheadというテキスト処理用の実行ファイルを上書きしている可能性があります(詳しくはここ)。その場合はheadというコマンドを復元する必要があります。
手順は、まず/usr/binにあるhead,get,postの3つのLWPのファイルを適当にところに移動してください。次に、ここからtext_cmdsを入手して圧縮ファイルを解凍すると、headコマンドのソースがでてきます。make && make installしてください。これでエラーが解消するはずです。
8.(mod_perlでMovableTypeを使いたいなら)libapreqのコンパイルとインストール
MovableTypeをmod_perl下で使いたいならlibapreqをインストールする必要があります。
$ cd /usr/local/src
$ wget http://www.meisei-u.ac.jp/mirror/apache/dist/httpd/libapreq/libapreq-1.3.tar.gz
$ cd libapreq-1.3
$ export APACHE=/usr/local/apache/bin/httpd
$ ./configure
$ make
$ make install
$ perl Makefile.PL -apxs=/usr/local/apache/bin/apxs
$ make
$ make test
$ make install
$ wget http://www.meisei-u.ac.jp/mirror/apache/dist/httpd/libapreq/libapreq-1.3.tar.gz
$ cd libapreq-1.3
$ export APACHE=/usr/local/apache/bin/httpd
$ ./configure
$ make
$ make install
$ perl Makefile.PL -apxs=/usr/local/apache/bin/apxs
$ make
$ make test
$ make install
これでできあがり、お疲れ様でした。
コメント
コメントする
- 匿名でのコメントは受け付けておりません。
- お名前(ハンドル名可)とメールアドレスは必ず入力してください。
- メールアドレスを表示されたくないときはURLも必ず記入してください。
- コメント欄でHTMLタグは使用できません。
- コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
- コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。
- 投稿ボタンを押してエラーがでなければ、投稿は成功しています。反映されるまでには少し時間がかかります。