Apache2.2系のインストールと設定

総閲覧回数:4,014,087回 / ブログ拍手:2,609
作品DB等各サービスの機能追加情報や、技術系・面白系記事を中心に提供。
記事の投稿は基本Twitterでも告知させて頂いています。
連絡は作品DBの論客の方なら私書、DB外ユーザの方ならメールTwitterで可能です。
アクセス記録[推移 / PV内訳(過去1日 / 過去1週間) / 外部アクセス元 (昨日 / 過去1週間) / ログイン論客足跡]
プロフィール私書(メール)
   /   /送済
評価(一覧   /)
投票   /共:   /
ファン登録
作品/情報/
DB構築()
ブログ
[書く]
攻略記事リンク集
My Play List
<=次の記事 お勧めサイト(リンク集)機能
=>前の記事 「検索エンジン質問ランキング」機能をアクセス記録に追加

1.
2006/02/11 Linux > Apache > Apache2.2系のインストールと設定」
[この書込みのみ表示(記事URL紹介用) / 編集 / 削除 / トラバ送信 / 共有分類に追加(タグ付け)]拍手:2個

1. 文章目的
2. 2.0系と2.2系の違い
3. デフォルトの状態でapacheを使うのなら
4. apacheのインストール
5. logrotate
6. SELinuxのセキュリティにより動かない機能がある場合
7. 現在の/etc/sysconfig/httpdの記録

1. 文章目的

Federalcore 4 / Redhat 9上でのapacheのインストールの記録をしておく。
2. 2.0系と2.2系の違い

mod_accessが廃止され、mod_authz_hostになった。
以下のようにhttpd.confに加える必要がある。
LoadModule authz_host_module modules/mod_authz_host.so
3. デフォルトの状態でapacheを使うのなら

chkconfig --add httpd
chkconfig httpd on
/etc/init.d/httpd start
だけはそれでもしておく。

workerモードで動かしたいのなら
vi /etc/sysconfig/httpd
するのも忘れずに。

apachectl -V
すればPreforkで動いているのかWorkerで動いているのか見える。
4. apacheのインストール

# Perlはインストールされているものとする / スレッドを利用可能にした状態でインストールしておくこと
# Perlのインストール/OS設定については
# http://www.accessup.org/pj/6_B4C9CDFDBFCDA4B5A4F3/20050601.html
# を参照して下さい。

# これからインストールするapache2へのPATHを通す
echo 'PATH=/usr/local/apache2/bin:$PATH' > ~/.bash_profile;
. ~/.bash_profile

#####################################################
# 2.2系を手動でインストールする場合

# インストールに必須&より良くしてくれるものをインストール
yum -y install pcre*
yum -y install zlib-devel
yum -y install openssl-devel

VERSION=1.4.6
PRO=apr
wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-$VERSION.tar.gz
tar xvfz $PRO-$VERSION.tar.gz
cd $PRO-$VERSION
make clean; # for confirmation
./configure;
make;
make test;
make install;
cd ..;

VERSION=1.5.1;
PRO=apr-util;
wget http://ftp.kddilabs.jp/infosystems/apache/apr/$PRO-$VERSION.tar.gz
tar xvfz $PRO-$VERSION.tar.gz
cd $PRO-$VERSION
make clean; # for confirmation
./configure --with-apr=/usr/local/apr;
make;
make test;
make install;
cd ..;

# apache
VERSION=2.2.24
wget -N http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-$VERSION.tar.gz
tar xvfz httpd-$VERSION.tar.gz
cd httpd-$VERSION
make clean; # for confirmation
# berkeleydbは自分が入れたものを使う
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-deflate --enable-ssl --enable-so --enable-proxy --enable-cgi --with-mpm=worker --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apache2/bin/apr-1-config;

make;
make install;
apachectl -t;# check config
mkdir -p /usr/local/apache2/run;
ldd /usr/local/apache2/bin/httpd

strip /usr/local/apache2/bin/httpd
cd ..;
mkdir -p /usr/local/apache2/lock/subsys;

httpd.confのServerRootを書き換えているのなら
vi /etc/init.d/httpd
...
apachectl=/usr/local/apache2/bin/apachectl
httpd=${HTTPD-/usr/local/apache2/bin/httpd}
pidfile=${PIDFILE-/usr/local/apache2/run/httpd.pid}
lockfile=${LOCKFILE-/usr/local/apache2/lock/subsys/httpd}
...
といった変更も必要

上記変更はコマンドで行うのなら
perl -e 'use FileHandle;my $file="/etc/init.d/httpd";my $fh=new FileHandle($file);undef $/;my $con=<$fh>;$fh->close();$con=~ s!/usr/sbin/!/usr/local/apache2/bin/!gs;my $ofh=new FileHandle("> ".$file);print $ofh $con;$ofh->close();';

perl -e 'use FileHandle;my $file="/etc/init.d/httpd";my $fh=new FileHandle($file);undef $/;my $con=<$fh>;$fh->close();$con=~ s!/var/run/!/usr/local/apache2/run/!gs;my $ofh=new FileHandle("> ".$file);print $ofh $con;$ofh->close();';

perl -e 'use FileHandle;my $file="/etc/init.d/httpd";my $fh=new FileHandle($file);undef $/;my $con=<$fh>;$fh->close();$con=~ s!/var/lock/!/usr/local/apache2/lock/!gs;my $ofh=new FileHandle("> ".$file);print $ofh $con;$ofh->close();';

#####################################################
# mod_perl
# RHEでなければ
# perlのパスにより異なりえる#
find /usr/local/lib/perl5 -name 'Apache2*' -exec rm -rf {} \;
find /usr/lib/perl5 -name 'Apache2*' -exec rm -rf {} \;
find /usr/local/lib64/perl5 -name 'Apache2*' -exec rm -rf {} \;
find /usr/lib64/perl5 -name 'Apache2*' -exec rm -rf {} \;

VERSION=2.0.8
URL=http://ftp.riken.jp/net/apache/perl/mod_perl-$VERSION.tar.gz
PRO=mod_perl
wget -N $URL
tar xvfz $PRO-$VERSION.tar.gz
cd mod_perl-$VERSION;
make clean;
perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs EVERYTHING=1;

make test;
make;
make install;

sudo /usr/local/apache2/bin/apachectl restart

もしくは

cpan install mod_perl2

# 1.9系を使っていたのなら#
# http://perl.apache.org/docs/2.0/rename.html を見て#

find /usr/local/lib/perl5 -name 'Apache2*' -exec rm -rf {} \;
find /usr/lib/perl5 -name 'Apache2*' -exec rm -rf {} \;
find /usr/local/lib64/perl5 -name 'Apache2*' -exec rm -rf {} \;
find /usr/lib64/perl5 -name 'Apache2*' -exec rm -rf {} \;

# とCGI.pmのアップグレードが必要になるかも(3.11以上のバージョンにしないといけない) #
# PREFIX=...をMakefile.PLのオプションに指定すれば衝突を避けることができる #
make;
make install;
cd ..;

#####################################################
# CGI.pmのアップデート / 必要な古い環境なら#
cpan CGI
#####################################################
# mod_dosevasiveの後継 / 有名ではないがDOS攻撃防御の為必須(大活躍の実績有り) #
# http://www.zdziarski.com/projects/mod_evasive/ #
#VERSION=1.10.1
#mkdir /home/www/src
#cd /home/www/src
#wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_$VERSION.tar.gz
#tar xvfz mod_evasive_$VERSION.tar.gz

# SVNの改変したものを使う / URLフィルターとUser-Agentフィルターのため

cd mod_evasive_edited
/usr/local/apache2/bin/apxs -i -a -c mod_evasive20.c;
cd ..;

# apxsが無い場合
# rpm -q httpd-devel としてパッケージのインストールを確認。入っていなければインストール
#####################################################
# mod_redir(独自のインストール)
cd mod_evasive_edited
/usr/local/apache2/bin/apxs -i -a -c mod_redir.c;
cd ..;
#####################################################

# versionを確認
apachectl -v

# 無駄なLoadModuleのコメントオフ
vi httpd.conf

# confの正常性確認
apachectl -t

# 調整
mkdir -p /usr/local/apache2/run;

# apacheを再起動
apachectl graceful;

# 自動起動設定
chkconfig --add httpd

# apacheがデフォルトのhttpdではなく、自分で入れたものが動くようにする
# httpd.workerで動かしたい時に編集
vi /etc/sysconfig/httpd

# 余計なconfの除去
# /etc/httpd/conf.d以下はwelcome.conf, perl.conf, ssl.conf, READMEだけにする

# 動作確認
apachectl -t
apachectl stop; # httpd.workerに変えるには一回stopが必要
apachectl start;

#####################################################
# /dev/shm/ (=ramdisk)をapacheログの置き場とした時、再起動した時にファイルが無くなってしまわないように、退避処理を組み込む

/etc/init.d/ramdisk_controller
chmod 755 /etc/init.d/ramdisk_controller
/root/bin/ramdisk_controller.pl
を設置

chkconfig --add ramdisk_controller
chkcionfig ramdisk_controller on

# 2回再起動すると有効になる
# 正確に言うと
/var/lock/subsys/ramdisk_controller
を作っておけば一回でも良い
5. logrotate

vi /etc/logrotate.d/httpd

httpd.pid
のパスを合わせて
/usr/sbin/logrotate /etc/logrotate.conf
6. SELinuxのセキュリティにより動かない機能がある場合

/usr/sbin/setsebool -P httpd_disable_trans=1
/usr/sbin/setsebool -P httpd_suexec_disable_trans=1
7. 現在の/etc/sysconfig/httpdの記録

export LD_PRELOAD=/usr/local/lib/libdb.so:/usr/local/lib/libchasen.so
HTTPD=/usr/local/apache2/bin/httpd
# for berkeleydb's home
umask 0000

コメントする2個


[他の記事も読む]
<=次の記事 お勧めサイト(リンク集)機能
=>前の記事 「検索エンジン質問ランキング」機能をアクセス記録に追加


大分類が「Linux」の記事
この論客の記事全て
↑上へ