下記手順の ローダブルモジュールに関する未考慮の内容について (追記:2013/08/19)
下記手順では、httpdのローダブルモジュールの作成についての記述はない。
「不要なモジュールのLoad文をコメントアウト」としてhttpd.confから LoadModule文を省略する記述があるが、
それら以外の*.soモジュールについては、作成しなおす必要がある。
たとえば導入済みの httpd 2.2.3にて mod_dav_svnを導入していた場合、
下記のように httpd と mod_dav_svn.so でリンクモジュールのバージョンに不整合がでる。
既存httpdに導入されていたmod_dav_svn.soのリンクモジュール
ldd /etc/httpd/modules/mod_dav_svn.so
# 出力結果一部抜粋
libaprutil-1.so.0 => /usr/lib64/libaprutil-1.so.0 (0x00002afbd3a74000)
ll /usr/lib64/libaprutil-1.so.0
lrwxrwxrwx 1 root root 21 Aug 18 09:13 /usr/lib64/libaprutil-1.so.0 -> libaprutil-1.so.0.2.7
下記手順で作成したhttpdのリンクモジュール
ldd /usr/local/apache2/bin/httpd
# 出力結果一部抜粋
libaprutil-1.so.0 => /usr/local/apache2/lib/libaprutil-1.so.0 (0x00002b3185692000)
ll /usr/local/apache2/lib/libaprutil-1.so.0
lrwxrwxrwx 1 root root 21 Aug 18 02:45 /usr/local/apache2/lib/libaprutil-1.so.0 -> libaprutil-1.so.0.5.2
リンクモジュールの不整合を残すと、以下のサイトに書かれているように、
正常に動作しないことがある。
LazyTechnology - リンクするaprのバージョンを0.9xから1.2xに
また、httpd 2.2系は aprのバージョンは 1.2以上 が要件
Apache - Compiling and Installing
環境
- CentOS 5.9 x86_64
- httpd 2.2.25
事前状態
- httpd 2.2.3 導入済み
手順
ビルド
バイナリの確保~セットアップ
svn co http://svn.apache.org/repos/asf/apr/apr/branches/1.3.x apr
svn co http://svn.apache.org/repos/asf/apr/apr-util/branches/1.3.x apr-uti
cd apr/
./buildconf
./configure --prefix=/usr/local/apr --enable-threads --with-ldap
make
make install
cd ../apr-util
yum install expat-devel
./buildconf
./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr --with-ldap
make
make install
wget http://ftp.riken.jp/net/apache//httpd/httpd-2.2.25.tar.gz
tar xvfz httpd-2.2.25.tar.gz
cd httpd-2.2.25
./configure --with-ldap --enable-ldap=shared --enable-authnz-ldap=shared --with-included-apr
make
make install
設定ファイル移行
起動スクリプトの設定
cp /etc/init.d/httpd /etc/init.d/httpd2225
diff /etc/init.d/httpd /etc/init.d/httpd2225
32,33c32,33
< apachectl=/usr/sbin/apachectl
< httpd=${HTTPD-/usr/sbin/httpd}
---
> apachectl=/usr/local/apache2/bin/apachectl
> httpd=${HTTPD-/usr/local/apache2/bin/httpd}
ln -s /etc/httpd/conf/httpd.conf /usr/local/apache2/conf/httpd.conf
ln -s /etc/httpd/conf.d /usr/local/apache2/conf.d
httpd.confのモジュール整理。
ビルドしたhttpdに既に存在するモジュールを調べる。
/usr/local/apache2/bin/apachectl -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_version.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c
不要なモジュールのLoad文をコメントアウト
httpd.conf
[root@localhost httpd-2.2.25]# grep -F "#LoadModule" /usr/local/apache2/conf/httpd.conf
#LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_default_module modules/mod_authn_default.so
#LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_user_module modules/mod_authz_user.so
#LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
#LoadModule authz_default_module modules/mod_authz_default.so
#LoadModule include_module modules/mod_include.so
#LoadModule log_config_module modules/mod_log_config.so
#LoadModule env_module modules/mod_env.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
#LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule mime_module modules/mod_mime.so
#LoadModule status_module modules/mod_status.so
#LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule dir_module modules/mod_dir.so
#LoadModule actions_module modules/mod_actions.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule alias_module modules/mod_alias.so
#LoadModule cgi_module modules/mod_cgi.so
#LoadModule version_module modules/mod_version.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
#LoadModule asis_module modules/mod_asis.so
起動
起動確認
/etc/init.d/httpd2225 start
ps aux | grep httpd
root 23425 0.0 0.1 24572 1560 ? Ss 01:08 0:00 /usr/local/apache2/bin/httpd
daemon 23426 0.0 0.1 24572 1132 ? S 01:08 0:00 /usr/local/apache2/bin/httpd
daemon 23427 0.0 0.1 24572 1132 ? S 01:08 0:00 /usr/local/apache2/bin/httpd
daemon 23428 0.0 0.1 24572 1132 ? S 01:08 0:00 /usr/local/apache2/bin/httpd
daemon 23430 0.0 0.1 24572 1132 ? S 01:08 0:00 /usr/local/apache2/bin/httpd
daemon 23431 0.0 0.1 24572 1132 ? S 01:08 0:00 /usr/local/apache2/bin/httpd