Apache

Apache
Linux用WWWサーバの代名詞。
apache2.4からは設定方法が色々と変更されているので注意。

インストール

1. 前準備
ソースから入れる前にpkgconifgを統一しておく。
他の場合でもやった方がよさそうだが、書くのが面倒くさいので省略。
(Linux入れたら、とりあえずLAMP構築するだろうからここだけで大丈夫だべ)

# cd /usr/local/lib64
# ln -s /usr/lib64/pkgconfig .
# cd /usr/local/lib
# mkdir /usr/lib/pkgconfig
# ln -s /usr/lib/pkgconfig .

後は、https通信用にOpenSSLも入れておく。


2. APRのビルド・インストール
apacheのソースと一緒にビルドする方法もあるらしいが、
自分の環境では上手くいかなかったので別々にビルドする。

# tar zxvf apr-1.4.6.tar.gz
# cd apr-1.4.6
# ./configure --prefix=/usr/local/apr
# make
# make test
# make install



3. APR-Utilのビルド・インストール

# tar zxvf apr-util-1.5.1.tar.gz
# cd apr-util-1.5.1
# ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util
# make
# make test
# make install



4. Apacheのビルド・インストール
initの名前を“httpd”にするとyumとかで入れた物と被ってエラーになる場合がある。
よって、今回は“apache”という名前にしてインストールする。
PCREがまだ入ってない場合は、apacheのソースをビルドする前に入れておく事。

# tar zxvf httpd-2.4.3.tar.gz
# cd httpd-2.4.3
# vi config

 
※全部一行で書く

--prefix=/usr/local/apache
--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl=/usr/local/openssl --with-pcre=/usr/local/pcre
--enable-ssl --enable-suexec --enable-rewrite --enable-auth-digest --enable-dav --enable-so
# ./configure `cat ./config`
# make
# make install


設定

I. apacheスクリプトのコピー

# cp /usr/local/apache/bin/apachectl /etc/init.d/apache
# chmod 755 /etc/init.d/apache
# ln -s /etc/init.d/apache /etc/init.d/httpd
# ln -s ../init.d/apache /etc/rc3.d/S96apache

initスクリプトはこっちの方が良いかも

# cp ${Apache_SrcDIR}/build/rpm/httpd.init /etc/init.d/apache



II. ユーザーの準備

# adduser www -d /var/apache -s /sbin/nologin
# rm -rf /var/apache
# mkdir -p /var/apache/html
# chown -R root.www /var/apache



III. apacheの設定

# cd /usr/local/apache/conf

 
※以下のファイルを設定していく。他は必要の応じて

# vi httpd.conf
# vi extra/httpd-default.conf
# vi extra/httpd-languages.conf


アクセス制限

apache2.2系統とapache2.4系統ではアクセス制限のやり方が変わっているので注意
A. apache2.2
全てのアクセス許可する

Order allow,deny
Allow from all

全てのアクセスを拒否する

Order deny,allow
Deny from all



B. apache2.4
全てのアクセスを許可する

Require all granted

全てのアクセスを拒否する

Require all denied


モジュール改変

一部のApacheモジュールはApache2.2用に作られている為、
APIが大幅に変更されたApache2.4ではビルドが通らず、追加インストール出来ない物がある。
しかし、有名なモジュールについてはCentOSやopenSUSE辺りが、
Apache2.4でもビルド出来るようにするパッチをリリースしているので、それらを当てればビルドが通る様になる。


mod_auth_kerb
ApacheでSingleSign-Onを実装する場合に必須となるモジュール
パッケージ管理で入れる時は自動でインストール出来るのだが、
Apacheをソースからインストールしている時は、モジュールもビルドする必要がある。
 
・ドキュメント類

ドキュメントKerberos Module for Apache
オリジナルソースsourceforge
適用ファイル名mod_auth_kerb-5.4.tar.gz

 
・オリジナルパッチ

ディストリパッチ配布元適用済みパッチリスト
CentOShttpd24-mod_auth_kerbdelegation.patch
fixes.patch
handle-continue.patch
httpd24.patch
longuser.patch
rcopshack.patch
s4u2proxy.patch
openSUSEKerberos Module for Apacheconfigure.patch
cache_auth.patch

 
・適用方法

[1] オリジナルソース(mod_auth_kerb-5.4.tar.gz)をダウンロード
[2] パッチ適用済みソース(mod_auth_kerb-5.4.src_patch.tar.gz)を下記添付ファイルリストからダウンロード
[3] ダウンロードした2つのファイルを解凍
[4] パッチ適用済みソースの(README、configure.in、src/mod_auth_kerb.c)をオリジナルに上書き
-----
$ md5sum mod_auth_kerb-5.4.src_patch.tar.gz 
e9260e537e498b88429074c12185e817  mod_auth_kerb-5.4.src_patch.tar.gz