働きたくないゆとりの備忘録

プログラミングとかサーバーとか学んだことをいろいろ書いていきたい。。。

CentOS 7にApache最新版をソースからインストール

スポンサーリンク

Webサーバーを構築したいときにApacheをyumでインストールすれば何かと楽ですが、バージョンが低いためセキュリティに問題があります。

そこで、Apacheの最新版をソースからインストールして安全性を高めたいと思います。

使用したOS

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

サーバー構築

必要なソフトをインストール

無いとApacheを構築できないので予めインストールしておいてください。

# Cコンパイラ
yum -y install gcc
yum -y install gcc-c++
# PCRE
yum -y install pcre-devel
# OpenSSL
yum -y install openssl-devel
APRをインストール

ARP(Apache Portable Runtime)は足りない機能を補完してどのOSでもソフトを使えるようにするライブラリなようです。
今回は記事作成時点での最新版である1.5.1をインストールします。

cd /usr/local/src
wget http://ftp.tsukuba.wide.ad.jp/software/apache/apr/apr-1.5.1.tar.gz
tar xvf apr-1.5.1.tar.gz
cd apr-1.5.1
./configure
make
make install
ARP-utilをインストール

同じく最新版である1.5.4をインストールします。

cd /usr/local/src
wget http://ftp.tsukuba.wide.ad.jp/software/apache/apr/apr-util-1.5.4.tar.gz
tar xvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --with-apr=/usr/local/apr
make
make install
Apacheをインストール

ここで本題のApacheです。
Apacheは2.2系と2.4系に分かれていますが、今回は2.4系をインストールします。
バージョンは記事作成時点での最新版2.4.12です。

cd /usr/local/src
wget http://ftp.riken.jp/net/apache//httpd/httpd-2.4.12.tar.gz
tar xvf httpd-2.4.12.tar.gz
cd httpd-2.4.12
./configure --enable-so --enable-rewrite --enable-ssl --enable-mods-shared=all --enable-mpms-shared='prefork worker event'
make
make install

configureのオプションは構築したいサーバーによって適宜変えてください。

ユーザー作成

最後にapacheユーザーを作ります。

groupadd apache
useradd -g apache apache


サーバーを起動後localhostにアクセスして「It works!」が表示されれば構築完了です。

/usr/local/apache2/bin/apachectl start

f:id:webhack:20150412042409p:plain

MPMについて

Apacheにはリクエストを並列処理するMPM(マルチプロセッシングモジュール)というモジュールがあります。
MPMで処理方法を指定することでサーバーのパフォーマンスを改善できるのですが、2.4系からはpreforkではなくeventがデフォルトの設定になっています。(それぞれの説明は今回は割愛)
サーバーの運用状況によってMPMを変えたい場合そのままだとeventから変更することができなくなるため、configureするときにオプションで--enable-mpms-sharedを指定してください。