httpd 2.2.25 導入ログ(CentOS5.9)

# 下記手順の ローダブルモジュールに関する未考慮の内容について (追記:2013/08/19)
下記手順では、httpdのローダブルモジュールの作成についての記述はない。
「不要なモジュールのLoad文をコメントアウト」としてhttpd.confから LoadModule文を省略する記述があるが、
それら以外の*.soモジュールについては、作成しなおす必要がある。

たとえば導入済みの httpd 2.2.3にて mod_dav_svnを導入していた場合、
下記のように httpd と mod_dav_svn.so でリンクモジュールのバージョンに不整合がでる。

```bash:既存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

```

```bash:下記手順で作成した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に](http://d.hatena.ne.jp/trench/20080212/1202784171)

また、httpd 2.2系は aprのバージョンは 1.2以上 が要件
[Apache - Compiling and Installing](http://httpd.apache.org/docs/2.2/en/install.html)

# 環境
* CentOS 5.9 x86_64
* httpd 2.2.25

# 事前状態
* httpd 2.2.3 導入済み

# 手順

## ビルド

```bash:バイナリの確保～セットアップ
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

```

## 設定ファイル移行

```bash:起動スクリプトの設定

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に既に存在するモジュールを調べる。

```bash:

/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文をコメントアウト

```apache: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

```
## 起動

```bash:起動確認

/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

```