DSOによるモジュールインストール
動的共有オブジェクト (Dynamic Shared Object)のお話です。
いいえ、ダラス交響楽団 (Dallas Symphony Orchestra)ではありません。
あらまし
一台のサーバ上で複数の開発者が作業しているのでいつも5000portを使って開発しているのですが、80番portを使いたいのでvirtualhost+proxyやってみようとしたらapacheのインストール時にmod_proxyやらはいってなかったという、そんな感じ。
mod_soの有無確認
% sudo /usr/local/httpd-2.2.16/bin/httpd -l | grep mod_so.c mod_so.c
apacheソース内のモジュール確認
% sudo ls -al /usr/local/src/httpd-2.2.16/modules/mappers/ ... % sudo ls -al /usr/local/src/httpd-2.2.16/modules/proxy/ ...
ビルドしてインストール
どうやらmod_proxy_http.cを先に記述する必要があるらしい。
% sudo su # cd /usr/local/src/httpd-2.2.16/modules/mappers # /usr/local/httpd-2.2.16/bin/apxs -a -i -c mod_vhost_alias.c # cd /usr/local/src/httpd-2.2.16/modules/proxy # /usr/local/httpd-2.2.16/bin/apxs -a -i -c mod_proxy_http.c mod_proxy.c proxy_util.c
これだけでよいらしい
確認
おそらくhttpd.confに追記されているはず
# cat /usr/local/httpd-2.2.16/conf/httpd.conf | grep 'LoadModule' # have to place corresponding `LoadModule' lines at this location so the # LoadModule foo_module modules/mod_foo.so ... LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule vhost_alias_module modules/mod_vhost_alias.so
syntaxチェック
/usr/local/httpd-2.2.16/bin/apachectl configtest
設定
<VirtualHost *:80> ServerName intra.devXX ProxyRequests Off ProxyPass / http://localhost:5000/ ProxyPassReverse / http://localhost:5000/ </VirtualHost>
syntaxチェック
/usr/local/httpd-2.2.16/bin/apachectl configtest
restart
/usr/local/httpd-2.2.16/bin/apachectl restart