Help us understand the problem. What is going on with this article?

httpd 2.2.25 導入ログ(CentOS5.9)

More than 5 years have passed since last update.

下記手順の ローダブルモジュールに関する未考慮の内容について (追記: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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away