Apacheのmod_perl化とリバースプロキシの設定がすんだので作業ログをメモ。
まずは、Apache1.3.33+mod_perlのインストーる、の前にApache2+mod_perl2をインストールしてみて大失敗したメモ。やってみたのはApache2.0.54+mod_perl2.0RC5。インスコ自体は滞りなくいけたけれど、MovableTypeが自分の力ではどうやっても動作しなかったのであきらめた。
ちなみに、インストーるされていたperl(5.8.5)がithreadが有効になっていなかったので再インストーるした(mod_perl2は要ithreadらしい mpm_wokerでmod_perlな場合は要ithread)。
> make distclean
> sh Configure -Dusethreads -Dprefix=/usr
> make >& make.log &
> make test >& test.log &
### make install
まあ、結局意味はなかったんだけど…。
続いて、Apache1.3.33。
> OPTIM=-O2 ./configure --enable-shared=max --disable-rule=EXPAT
> make >& make.log &
### make install
SOAP::Liteを使うのでexpatを無効にしてインストーる。
で、これにmod_perl-1.29を入れる。
> perl Makefile.PL USE_APXS=1\
WITH_APXS=/usr/local/apache/bin/apxs\
EVERYTHING=1
> make >& make.log &
### make install
EVERYTHINGでいろんなものをインストールするらしい。 そしてmod_perlの設定。このApacheはプロキシの受け側になるのでその設定も。
Listen 127.0.0.1:8080
Port 8080
KeepAlive Off
<Location /perl-status.cgi>
SetHandler perl-script
PerlHandler Apache::Status
</Location>
PerlSetEnv PERL5LIB /home/www/htdocs/mt/lib:/home/www/htdocs/mt/extlib
PerlModule Apache::Registry
<Directory /home/www/htdocs>
SetHandler perl-script
PerlHandler Apache::Registry
Options +ExecCGI
PerlSendHeader Off
</Directory>
拡張子cgiなやつらをプロキシで転送するので、perl-statusも.cgiをつける。あと、KeepAliveはいらないので切っておく。ちなみにMaxClientsは2(すくなっ!)。
これで、アプリケーションサーバーは完成。
続きまして、フロントエンドサーバーとなるApache2.0の設定。mod_proxyを有効にして、mpm_workerでインストール(64MBなメモリだけにpreforkはきつい…)。
> ./configure --with-mpm=worker\
--enable-mods-shared=all\
--enable-proxy\
--enable-ssl\
--datadir=/home/www
> make >& make.log &
### make install
そしたらば、proxyの設定。
<VirtualHost norainu.net>
DocumentRoot /home/www/htdocs
ServerName norainu.net
ErrorLog logs/error_log
CustomLog logs/access_log combined
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} \.(cgi|pl)$
RewriteRule ^/(.*) http://localhost:8080/$1 [P,L]
</VirtualHost>
cgiと、せっかくなので.plもプロキシに転送(ほぼAwstats専用、でもあんましはやくならない)。
ハイ、お疲れ~。あとは、ブログをNucleusからMovableTypeに移行するべし。