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

個人的に mod_rewrite と mod_proxy は必須モジュール。動的共有オブジェクト (Dynamic Shared Object: DSO) でインストールしておく。

Apache HTTP Server のソースコードをダウンロードしてコンパイル、インストール。


$ 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-rewrite=shared --enable-proxy=shared --enable-proxy-http=shared
$ make
$ su
# make install

確認のため、コンパイル情報を表示。


# /usr/local/apache2/bin/apachectl -V
Server version: Apache/2.2.22 (Unix)
Server built:   Feb 13 2012 20:44:32
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"

設定ファイル httpd.conf をチェック。


# /usr/local/apache2/bin/apachectl configtest
httpd: apr_sockaddr_info_get() failed for hogehoge
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK

ServerName ディレクティブを設定しないといけないらしい。

httpd.conf から #ServerName www.example.com:80 のコメントをはずして有効に(とりあえず動かすだけならちゃんとしたホスト名にせずデフォルトの www.example.com:80 でOK... というか ServerName を有効にしなくても動かすだけなら動く・・・)。

確認のため、オリジナルの httpd.conf と比較。


# diff /usr/local/apache2/conf/original/httpd.conf /usr/local/apache2/conf/httpd.conf 
105c105
< #ServerName www.example.com:80
---
> ServerName www.example.com:80

再度、設定ファイル httpd.conf をチェックする。今度はOKだった。


# /usr/local/apache2/bin/apachectl configtest
Syntax OK

Apache 2.2 を起動。


# /usr/local/apache2/bin/apachectl start

トップページに "It works!" と表示されることを確認。


$ wget http://localhost/
--2012-02-13 22:20:48--  http://localhost/
localhost をDNSに問いあわせています... 127.0.0.1
localhost|127.0.0.1|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 44 [text/html]
`index.html' に保存中
 
100%[======================================>] 44          --.-K/s 時間 0s      
 
2012-02-13 22:20:48 (7.51 MB/s) - `index.html' へ保存完了 [44/44]
 
$ cat ./index.html 
<html><body><h1>It works!</h1></body></html>

とりあえず、ここまで。

それはそうとして、 mod_proxy 系は mod_proxy_http だけ使いたいんだけど一気にインストールされちゃうのかな。まぁ、設定を有効にしなければいいだけなんだけど。


# 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 proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule rewrite_module modules/mod_rewrite.so

# ls -la /usr/local/apache2/modules/
合計 864
drwxr-sr-x  2 root  staff   4096 2012-02-13 20:47 .
drwxr-sr-x 15 root  staff   4096 2012-02-13 20:47 ..
-rw-r--r--  1 hoge  staff   9170 2012-02-13 20:44 httpd.exp
-rwxr-xr-x  1 root  staff 219917 2012-02-13 20:47 mod_proxy.so
-rwxr-xr-x  1 root  staff 117044 2012-02-13 20:47 mod_proxy_ajp.so
-rwxr-xr-x  1 root  staff  65718 2012-02-13 20:47 mod_proxy_balancer.so
-rwxr-xr-x  1 root  staff  33900 2012-02-13 20:47 mod_proxy_connect.so
-rwxr-xr-x  1 root  staff  86395 2012-02-13 20:47 mod_proxy_ftp.so
-rwxr-xr-x  1 root  staff  86519 2012-02-13 20:47 mod_proxy_http.so
-rwxr-xr-x  1 root  staff  49587 2012-02-13 20:47 mod_proxy_scgi.so
-rwxr-xr-x  1 root  staff 153302 2012-02-13 20:47 mod_rewrite.so

Ref.
- Welcome! - The Apache HTTP Server Project
- コンパイルとインストール - Apache HTTP サーバ
- core - Apache HTTP サーバ
- mod_proxy - Apache HTTP サーバ
- mod_proxy_http - Apache HTTP サーバ
- mod_rewrite - Apache HTTP Server
- [ヅ] Mac OS X Snow Leopard に Apache 2.2.17 をソースからインストール

tags: debian apache

Posted by NI-Lab. (@nilab)