Debian GNU/Linux squeeze に Apache 2.2.22 をソースコードからインストールする。

使用可能な Apache モジュールは動的共有オブジェクト (Dynamic Shared Object: DSO) で全部インストールしておく。


$ wget http://www.apache.org/dist/httpd/httpd-2.2.22.tar.gz
$ tar zxvf ./httpd-2.2.22.tar.gz
$ cd httpd-2.2.22
$ ./configure --enable-mods-shared=all
$ make
$ su
# make install

あれ、 apachectl start してもプロセスが起動しない。。。

とりあえず、インストールされた Apache の情報。


$ /usr/local/apache2/bin/httpd -V
Server version: Apache/2.2.22 (Unix)
Server built:   Feb 25 2012 11:51:52
Server's Module Magic Number: 20051115:30
Server loaded:  APR 1.4.5, APR-Util 1.4.1
Compiled using: APR 1.4.5, APR-Util 1.4.1
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr/local/apache2"
 -D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

設定ファイルに記述されているモジュールの情報。


$ grep LoadModule /usr/local/apache2/conf/httpd.conf
# have to place corresponding `LoadModule' lines at this location so the
# LoadModule foo_module modules/mod_foo.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule dbd_module modules/mod_dbd.so
LoadModule dumpio_module modules/mod_dumpio.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule include_module modules/mod_include.so
LoadModule filter_module modules/mod_filter.so
LoadModule substitute_module modules/mod_substitute.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule log_forensic_module modules/mod_log_forensic.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule ident_module modules/mod_ident.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule imagemap_module modules/mod_imagemap.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so

インストールされたモジュールの一覧。


$ ls -la /usr/local/apache2/modules
合計 2812
drwxr-sr-x  2 root  staff   4096 2012-02-25 11:53 .
drwxr-sr-x 15 root  staff   4096 2012-02-25 11:53 ..
-rw-r--r--  1 hoge  staff   9170 2012-02-25 11:51 httpd.exp
-rwxr-xr-x  1 root  staff  28330 2012-02-25 11:53 mod_actions.so
-rwxr-xr-x  1 root  staff  40341 2012-02-25 11:53 mod_alias.so
-rwxr-xr-x  1 root  staff  25130 2012-02-25 11:53 mod_asis.so
-rwxr-xr-x  1 root  staff  30259 2012-02-25 11:53 mod_auth_basic.so
-rwxr-xr-x  1 root  staff  71137 2012-02-25 11:53 mod_auth_digest.so
-rwxr-xr-x  1 root  staff  26511 2012-02-25 11:53 mod_authn_anon.so
-rwxr-xr-x  1 root  staff  31229 2012-02-25 11:53 mod_authn_dbd.so
-rwxr-xr-x  1 root  staff  27648 2012-02-25 11:53 mod_authn_dbm.so
-rwxr-xr-x  1 root  staff  23788 2012-02-25 11:53 mod_authn_default.so
-rwxr-xr-x  1 root  staff  28211 2012-02-25 11:53 mod_authn_file.so
-rwxr-xr-x  1 root  staff  30955 2012-02-25 11:53 mod_authz_dbm.so
-rwxr-xr-x  1 root  staff  23530 2012-02-25 11:53 mod_authz_default.so
-rwxr-xr-x  1 root  staff  31180 2012-02-25 11:53 mod_authz_groupfile.so
-rwxr-xr-x  1 root  staff  30995 2012-02-25 11:53 mod_authz_host.so
-rwxr-xr-x  1 root  staff  26657 2012-02-25 11:53 mod_authz_owner.so
-rwxr-xr-x  1 root  staff  25603 2012-02-25 11:53 mod_authz_user.so
-rwxr-xr-x  1 root  staff  88248 2012-02-25 11:53 mod_autoindex.so
-rwxr-xr-x  1 root  staff  29985 2012-02-25 11:53 mod_cern_meta.so
-rwxr-xr-x  1 root  staff  68605 2012-02-25 11:53 mod_cgi.so
-rwxr-xr-x  1 root  staff 330435 2012-02-25 11:53 mod_dav.so
-rwxr-xr-x  1 root  staff 177571 2012-02-25 11:53 mod_dav_fs.so
-rwxr-xr-x  1 root  staff  52660 2012-02-25 11:53 mod_dbd.so
-rwxr-xr-x  1 root  staff  59712 2012-02-25 11:53 mod_deflate.so
-rwxr-xr-x  1 root  staff  30143 2012-02-25 11:53 mod_dir.so
-rwxr-xr-x  1 root  staff  30811 2012-02-25 11:53 mod_dumpio.so
-rwxr-xr-x  1 root  staff  27366 2012-02-25 11:53 mod_env.so
-rwxr-xr-x  1 root  staff  35318 2012-02-25 11:53 mod_expires.so
-rwxr-xr-x  1 root  staff  57865 2012-02-25 11:53 mod_ext_filter.so
-rwxr-xr-x  1 root  staff  46102 2012-02-25 11:53 mod_filter.so
-rwxr-xr-x  1 root  staff  52612 2012-02-25 11:53 mod_headers.so
-rwxr-xr-x  1 root  staff  31750 2012-02-25 11:53 mod_ident.so
-rwxr-xr-x  1 root  staff  43342 2012-02-25 11:53 mod_imagemap.so
-rwxr-xr-x  1 root  staff 130885 2012-02-25 11:53 mod_include.so
-rwxr-xr-x  1 root  staff  48909 2012-02-25 11:53 mod_info.so
-rwxr-xr-x  1 root  staff  77079 2012-02-25 11:53 mod_log_config.so
-rwxr-xr-x  1 root  staff  33725 2012-02-25 11:53 mod_log_forensic.so
-rwxr-xr-x  1 root  staff  27886 2012-02-25 11:53 mod_logio.so
-rwxr-xr-x  1 root  staff  48702 2012-02-25 11:53 mod_mime.so
-rwxr-xr-x  1 root  staff  70428 2012-02-25 11:53 mod_mime_magic.so
-rwxr-xr-x  1 root  staff  93845 2012-02-25 11:53 mod_negotiation.so
-rwxr-xr-x  1 root  staff  39841 2012-02-25 11:53 mod_reqtimeout.so
-rwxr-xr-x  1 root  staff 153302 2012-02-25 11:53 mod_rewrite.so
-rwxr-xr-x  1 root  staff  37019 2012-02-25 11:53 mod_setenvif.so
-rwxr-xr-x  1 root  staff  34234 2012-02-25 11:53 mod_speling.so
-rwxr-xr-x  1 root  staff  54797 2012-02-25 11:53 mod_status.so
-rwxr-xr-x  1 root  staff  38381 2012-02-25 11:53 mod_substitute.so
-rwxr-xr-x  1 root  staff  28703 2012-02-25 11:53 mod_unique_id.so
-rwxr-xr-x  1 root  staff  30406 2012-02-25 11:53 mod_userdir.so
-rwxr-xr-x  1 root  staff  36186 2012-02-25 11:53 mod_usertrack.so
-rwxr-xr-x  1 root  staff  22147 2012-02-25 11:53 mod_version.so
-rwxr-xr-x  1 root  staff  36012 2012-02-25 11:53 mod_vhost_alias.so

実は ./configure で一度失敗している

./configure 時に zlib がみつかりません、とエラー。


checking for zlib location... not found
checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures
パッケージ: zlib1g-dev (1:1.2.3.4.dfsg-3)

圧縮ライブラリ - 開発キット

zlib は gzip と PKZIP で使われている deflate 圧縮法を実装したライブラリです。このパッケージは開発をサポートするファイルが含まれています。

Debian -- squeeze の zlib1g-dev パッケージに関する詳細

zlib1g-dev をインストールして、 ./configure しなおしたらエラーも出なくてうまくいった。


# aptitude install zlib1g-dev

それにしても apachectl start しても起動しない。どこかのモジュールが悪さをしてるのかなぁ。。。

追記: 2012-02-26

無事起動できた。

もしかして /etc/hostname と /etc/hosts に書かれているホスト名が一致していなかったのが問題だったのかも?

/etc/hostname には foobar と書いてあって、 /etc/hosts には hoge と書いてあった (途中でホスト名を変えようとしてこんな状況に)。


# cat /etc/hostname
foobar

# cat /etc/hosts
127.0.0.1	localhost
127.0.1.1	hoge.localdomain	hoge
 
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Debian OS を再起動してから、なにげなく /etc/hostname の foobar を hoge に修正して /usr/local/apache2/bin/apachectl start したら無事に起動できた。

あれ、そういえばなんで 127.0.1.1 にホスト名が指定されてるの・・・・

 Ubuntu10.04のServer(サーバー)版でIPアドレスを固定に変更しホスト名も変更しようと言うことで設定をしていると、ホスト名の部分のIPアドレスとして、「127.0.1.1」が設定されているのが分かった。ネットで調べるとこれは、インストール時に自動的にIPアドレスを取得した場合(DHCPを利用)に、このように設定されれるDebian系のディストリビューションの仕様という事でした。Ubuntu10.04.2のServer版でIPアドレスを固定と自動取得とインストールして動作を確認して、Webの情報と比較して納得。
127.0.1.1って何 - DB@WEB
さっきDebianのレファレンスを見て、そのような仕様であると確認した。(なお、日本語版では127.0.1.1が127.0.0.1に変更されている。)それによれば、固定IPアドレスを使っているなら、127.0.1.1ではなく当該IPアドレスを使えとある。Ubuntuのインストーラーでは最初は自動的にDHCPサーバーを利用しようとするから、このような設定になってしまうのだろう。念のために書いておくと、「red.example.local」の固定IPアドレスが「192.168.x.x」だった場合には、

127.0.0.1 localhost
192.168.x.x red.example.local red

とするのが常套句だ。

Ubuntuと127.0.1.1 - 十日日記(2009-05-26)
javaでプログラミングしてたんだけど、InetAddress.getLocalHost()で自分のIPアドレスを取得すると127.0.1.1が返ってくる。どうやらDebianベースのディストリだとこういうことになるらしい。

IPアドレス取得しても127.0.1.1とか言われちゃうので対処した俺用メモ - とみふらの明るく楽しい日記

ほへー。

tags: apache debian

Posted by NI-Lab. (@nilab)