Apache 2.4.9 構築 2 - インストール

前回からの続きで、今回はApacheをソースからインストールします。


事前準備

・Cコンパイラのインストール

# yum install gcc

・PCREをApacheで利用するためのPCRE開発パッケージをインストール
(Perl Compatible Rebular Expression Library version 5.0)

# yum install pcre-devel

・前回ダウンロードしたソースコードを解凍・展開

# cd /usr/local/src/
# ls
httpd-2.4.9.tar.gz
# tar zxvf httpd-2.4.9.tar.gz

 

APRとAPR-Util、APR iconvの入手とApacheインストール

APR、APR-Util、APR iconvのソースをApacheに含めてビルドするため、/usr/local/src/httpd-2.4.9/srclib/に展開
ダウンロード先:http://apr.apache.org/download.cgi

・ディレクトリ移動

# cd /usr/local/src/httpd-2.4.9/srclib/

・ソースダウンロード

# wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-1.5.1.tar.gz
# wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-util-1.5.3.tar.gz
# wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-iconv-1.2.1.tar.gz

・ソースの展開

# tar zxvf apr-1.5.1.tar.gz
# tar zxvf apr-util-1.5.3.tar.gz
# tar zxvf apr-iconv-1.2.1.tar.gz

・展開したディレクトリ名の変更

# mv apr-1.5.1 apr
# mv apr-util-1.5.3 apr-util
# mv apr-iconv-1.2.1 apr-iconv

・ビルドファイル作成

今回はsslとproxy、ロードバランサーのモジュールを静的に組み込むので以下のオプションで実行。

# cd /usr/local/src/httpd-2.4.9
# ./configure --prefix=/usr/local/httpd-2.4.9 --with-mpm=prefork --with-included-apr --enable-so --enable-ssl \
--enable-proxy --enable-proxy-balancer --enable-proxy-http --enable-proxy-ajp --enable-proxy-connect

ここでエラー発生…

checking for OpenSSL... checking for user-provided OpenSSL base directory... none
checking for OpenSSL version >= 0.9.8a... FAILED
configure: WARNING: OpenSSL version is too old
no
checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures

OpenSSLのバージョンが古いって出ていますが、そんなはずは…一応確認。

# rpm -qa | grep openssl
openssl-1.0.1e-16.el6_5.14.x86_64

どうやらopensslv.hがないため、システム側でOpenSSLのバージョンができていないようです。こちらのサイトを参考にさせていただきました。
opensslv.hはopenssl-develパッケージに含まれているようなのでインストール。

# yum install openssl-devel

もう一度./confiureして無事処理完了。同ディレクトリにMakefileが作成されます。

・ビルドします。

# make

・インストール

# make install

 

動作確認の初期設定

・設定ファイルの編集

# cp /usr/local/httpd-2.4.9/conf/httpd.conf{,.org}
# vi /usr/local/httpd-2.4.9/conf/httpd.conf

#User daemon
#Group daemon
User apache
Group apache

#ServerAdmin you@example.com
ServerAdmin <メールアドレス> 

#ServerName www.example.com:80
ServerName <ホスト名>:80

・Apache実行ユーザの作成

とりあえずUIDとGIDはパッケージインストールしたときのIDと同じものにしておきます。

# groupadd -g 48 apache
# useradd -u 48 -g apache -s /sbin/nologin -M apache

・構文チェック

# /usr/local/httpd-2.4.9/bin/httpd -t
Syntax OK
または
# /usr/local/httpd-2.4.9/bin/apachectl configtest
Syntax OK

・Apache起動

# /usr/local/httpd-2.4.9/bin/apachectl start

ここでサーバのIPアドレスでブラウザアクセスすると「It works!」と表示されるはずなのですが、応答がありません。 エラーログを確認すると

# less /usr/local/httpd-2.4.9/logs/error_log
[proxy_balancer:emerg] [pid 10948] AH01177: Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??
[:emerg] [pid 10948] AH00020: Configuration Failed, exiting

mod_slotmem_shmモジュールが読み込まれていないようなので、有効にします。

# vi /usr/local/httpd-2.4.9conf/httpd.conf

#以下のコメントを外す
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

Apache再起動します。

# /usr/local/httpd-2.4.9/bin/apachectl restart

ブラウザで「It works!」の表示確認。 これで一応Apacheが起動できることが確認できました。

 

起動スクリプトの設定

起動スクリプトを設定します。

・方法1:Apacheのインストールディレクトリにあるapachectlをコピーする

# コピー
# cp /usr/local/httpd-2.4.9/bin/apachectl /etc/init.d/httpd

# apache起動
# /etc/init.d/httpd start

・方法2:Apacheのソースディレクトリにあるhttpd.iniをコピーする

# コピー
# cp /usr/local/src/httpd-2.4.9/build/rpm/httpd.init /etc/init.d/httpd

# コピーした起動スクリプトを修正
# vi /etc/init.d/httpd

#httpd=${HTTPD-/usr/sbin/httpd}
httpd=${HTTPD-/usr/local/httpd-2.4.9/bin/httpd}

#pidfile=${PIDFILE-/var/run/${prog}.pid}
pidfile=${PIDFILE-/usr/local/httpd-2.4.9/logs/${prog}.pid}

# httpd.confのパスを修正
# check for 1.3 configuration
check13 () {
        CONFFILE=/usr/local/httpd-2.4.9/conf/httpd.conf

# apache起動
# /etc/init.d/httpd start
Starting httpd:                                            [  OK  ]

方法2だと起動時にOKかどうかのメッセージが表示されるので私は方法2を使っています。

 

起動スクリプト(httpd)をサービスに追加

最後に起動スクリプト(httpd)をサービスに登録して自動起動の設定をします。

# chkconfig --add httpd
# chkconfig --level 35 httpd on
# chkconfig --list httpd
httpd           0:off   1:off   2:off   3:on    4:off   5:on    6:off

最新記事

 

参考サイト
http://momoto.github.io/blog/2013/07/31/guide-to-compiling-and-installing-apache-http-server-2-dot-4-6/ http://tt4cs.blogspot.jp/2013/01/apache-2.4-installation.html
http://tt4cs.blogspot.jp/2013/01/how-to-enable-dso-for-apache-2.4.html
http://w.builwing.info/2013/08/15/centos6-4%E3%81%ABapache2-4-6%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/ http://alfa.hatenablog.jp/entry/2013/07/03/222507
http://www.kakiro-web.com/linux/apache-install.html
http://blog.trippyboy.com/2012/centos/configure-openssl%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%8C%E4%BD%8E%E3%81%84%E3%81%A8%E6%80%92%E3%82%89%E3%82%8C%E3%81%A1%E3%82%83%E3%81%A3%E3%81%9F%E3%82%88%E3%81%AE%E5%B7%BB/

 

参考書籍
サーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus)