ソースコードを使ったapacheインストール
yumやrpmだと利用できるバージョンが限られていたりするので
基本的にサービスの運用で利用するapacheについてはソースコンパイル、
インストールを基本にすべきだと思います。
apacheユーザで起動させ、DOS対策も考えmod_dosdetectorの設定も含む
apacheインストール手順を記載します。
-------------------------------------------
rootユーザにスイッチ
su - root
apache前提条件のopenssl-develソフトウェアインストール
yum install openssl-devel
こちらもapache前提条件のPCREインストール
mkdir -p /usr/local/src
mkdir -p /usr/local/src
cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
tar zxvf pcre-8.38.tar.gz
cd /usr/local/src/pcre-8.38
./configure
make
make install
apacheのソース用意
cd /usr/local/src
wget http://ftp.jaist.ac.jp/pub/apache/httpd/httpd-2.4.25.tar.gz
tar zxvf httpd-2.4.25.tar.gz
apache前提条件のAPR用意
wget http://ftp.jaist.ac.jp/pub/apache/apr/apr-1.5.2.tar.gz
wget http://ftp.jaist.ac.jp/pub/apache/apr/apr-util-1.5.4.tar.gz
tar zxvf apr-1.5.2.tar.gz
tar zxvf apr-util-1.5.4.tar.gz
mv apr-1.5.2 /usr/local/src/httpd-2.4.25/srclib/apr
mv apr-util-1.5.4 /usr/local/src/httpd-2.4.25/srclib/apr-util
apacheソースコードのビルド、インストール
cd /usr/local/src/httpd-2.4.25
./configure \
--with-mpm=event \
--enable-mods-shared="all ssl proxy cache cache_disk" \
--sysconfdir=/etc/httpd/conf \
--datadir=/var/www
make
su -
cd /usr/local/src/httpd-2.4.25
make install
apacheユーザ作成(/usr/share/doc/setup-2.5.58/uidgidに従う)
groupadd -g 48 apache
useradd -u 48 -g apache -d /var/www -s /sbin/nologin apache
ファイル所有者変更
chown -R apache:apache /usr/local/apache2
mkdir -p /var/www/html
chown -R apache:apache /var/www
ls -l /usr/local | grep apache2
シンボリックリンク作成(アップデートなどを考えたメンテナンス性向上のため)
mv /usr/local/apache2 /usr/local/apache2.4.25
ln -s /usr/local/apache2.4.25 /usr/local/apache2
ls -l /usr/local
起動スクリプト作成、登録
cp /usr/local/src/httpd-2.4.25/build/rpm/httpd.init /etc/init.d/httpd
chmod 755 /etc/init.d/httpd
chown apache:apache /etc/init.d/httpd
ls -l /etc/init.d/httpd
vi /etc/init.d/httpd
~~~~~
httpd=${HTTPD-/usr/local/apache2/bin/httpd}
pidfile=${PIDFILE-/usr/local/apache2/logs/${prog}.pid}
~~~~~
chkconfig --add httpd
chkconfig --list httpd
chkconfig --level 35 httpd on
chkconfig --list httpd
httpd.confファイル編集
cd /etc/httpd/conf
cp -p httpd.conf httpd.conf.`date +%Y%m%d`
vi httpd.conf
~~~~~
LoadModule rewrite_module modules/mod_rewrite.so ★デフォルトから修正
LoadModule dosdetector_module modules/mod_dosdetector.so ★デフォルトから追加
User apache ★デフォルトから修正
Group apache ★デフォルトから修正
# mod dosdetector Settings ★デフォルトから追加
Include /etc/httpd/conf/extra/httpd-mod_dosdetector.conf ★デフォルトから追加
~~~~~
mod_dosdetectorのソースコード入手して、
サーバ上の/usr/local/srcに格納してください
mod_dosdetector-0.2.tar.gz(http://sourceforge.jp/projects/sfnet_moddosdetector/releases/)
mod_dosdetector-0.2-apache2.4.patch.gz(http://ftp.momo-i.org/pub/www/patch/)
mod_desdetectorへのパッチ適用
cd /usr/local/src
tar zxvf mod_dosdetector-0.2.tar.gz
gunzip mod_dosdetector-0.2-apache2.4.patch.gz
mv mod_dosdetector-0.2-apache2.4.patch ./mod_dosdetector-0.2
cd /usr/local/src/mod_dosdetector-0.2
patch < mod_dosdetector-0.2-apache2.4.patch
mod_desdetectorのmakeファイルを今回の環境用に修正
vi Makefile
~~~~~
APXS=/usr/local/apache2/bin/apxs ★デフォルトから修正
vi mod_dosdetector.spec
~~~~~
%define apxs /usr/local/apache2/bin/apxs ★デフォルトから修正
mod_dosdetectorのコンパイル、インストール
cd /usr/local/src/mod_dosdetector-0.2
make
make install
mod_dosdetectorのコンフィグファイル作成
cd /etc/httpd/conf/extra
vi httpd-mod_dosdetector.conf
~~~~~
#
# The measure against a dos attack
#
<IfModule dosdetector_module>
DoSDetection On
DoSThreshold 600
DoSHardThreshold 1800
DoSPeriod 60
DoSBanPeriod 600
DoSTableSize 100
DoSIgnoreContentType js|css|jpg|gif|png|bmp|htm|html
</IfModule>
<IfModule rewrite_module>
RewriteEngine On
RewriteCond %{ENV:SuspectHardDoS} =1
RewriteRule .* - [R=503,L]
ErrorDocument 503 "Server is busy."
</IfModule>