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)