LoginSignup
38
40

More than 5 years have passed since last update.

CentOS 6 に Apache 2.4 をインストールする

Last updated at Posted at 2013-10-01

:warning: 注意 (2015-07-31 記載)

当記事は CentOS 6 を対象とした古い記事であり、内容が間違ったままになっている場合もあります。

CentOS 7 を利用している場合は、代わりに CentOS 7 に Apache と MariaDB 10.0 をインストールし SFTP 接続 をご覧ください。


導入

Apache HTTP Server 2.4、及びApache 2.4.7 以降の起動に必要なAPR 1.5APR-util 1.5は、標準のYumリポジトリなどには存在せず、ApacheはRPMパッケージなどを提供していません。したがって、CentOS上でソースパッケージをビルドし、RPMパッケージを作成する必要があります。

この記事はCentOS 6.4 に Apache 2.4.4 をインストールする:100の人のブロマガ - ブロマガの修正版です。

実運用環境と同じOSがインストールされている開発環境があれば、ApacheのRPMパッケージ作成までは開発環境で行うと良いでしょう。

ビルドの準備

選択したパッケージグループによっては、RPMのビルド環境が整っていないかもしれません。コマンドが見つからなかったりビルドに失敗するようであれば、rpmbuildコマンドGCCをインストールします。

sudo yum install rpm-build gcc

APRのビルドとインストール 

依存パッケージのインストールにyum-builddepコマンドを利用するので、そのコマンドが含まれるYumUtilsをインストールしておきます。このパッケージにはあとで利用するyumdownloaderコマンドも含まれています。

sudo yum install yum-utils

署名の検証に必要なApacheの公開鍵を取り込んでおきます。

# Apacheの公開鍵を取得
wget https://www.apache.org/dist/httpd/KEYS
# 取り込む
gpg --import KEYS
# ファイルの削除
rm KEYS

ソースパッケージは、ミラーサイトからダウンロードします。APRのダウンロードページから、最寄りのミラーサイトのダウンロードURLを取得できます。

/etc/servicesのポート番号指定が、ftp 21/tcpssh 22/tcpとなっていなければ、ビルドの最後でテストに失敗します。ポート番号を変更している場合、一時的にデフォルトのポート番号に書き換えておいてください。

# 旧バージョンのRPMパッケージを作成していれば、削除しておく
rm ~/rpmbuild/RPMS/*/apr{,-devel}-[0-9]*.rpm
# 最新バージョン番号の取得
APR_VERSION=$(wget https://www.apache.org/dist/apr/ --output-document=- | sed --quiet --regexp-extended '/<a name="apr">/ s/.+ ([.0-9]+) .+/\1/p')
# ソースファイルの取得
wget ftp://ftp.riken.go.jp/net/apache/apr/apr-$APR_VERSION.tar.bz2 --directory-prefix ~/rpmbuild/SOURCES
# 署名の取得
wget https://www.apache.org/dist/apr/apr-$APR_VERSION.tar.bz2.asc
# 署名の検証
gpg --verify apr-$APR_VERSION.tar.bz2.asc ~/rpmbuild/SOURCES/apr-$APR_VERSION.tar.bz2
# ソースRPMパッケージの作成
rpmbuild -ts --rmsource ~/rpmbuild/SOURCES/apr-*
# ビルドに必要なパッケージのインストール
sudo yum-builddep ~/rpmbuild/SRPMS/apr-*.src.rpm
# ビルド
rpmbuild --rebuild --clean ~/rpmbuild/SRPMS/apr-*.src.rpm
# 署名ファイル、ソースRPMパッケージの削除
rm apr-*.asc ~/rpmbuild/SRPMS/apr-*.src.rpm

# インストール
sudo rpm --upgrade --verbose --hash ~/rpmbuild/RPMS/*/apr{,-devel}-[0-9]*.rpm

途中、gpgコマンドで署名を検証しています。gpg: “Jeff Trawick (CODE SIGNING KEY) <trawick@apache.org>”からの正しい署名などと表示されれば、ダウンロードしたファイルに誤りはないということです。1

APR-utilのビルドとインストール 

APR-utilのビルドに必要なFreeTDSは、標準のYumリポジトリに存在しません。先にEPELリポジトリからインストールしておきます。

# EPEL6リポジトリの公開鍵を取り込む
sudo rpm --import https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
# EPEL6リポジトリを追加する
sudo rpm --upgrade --verbose --hash https://dl.fedoraproject.org/pub/epel/6/$(uname --hardware-platform)/epel-release-6-8.noarch.rpm
# EPELリポジトリを無効化する
sudo yum-config-manager --disable epel
# EPELリポジトリを一時的に有効化してFreeTDSをインストールする
sudo yum install freetds --enablerepo=epel
# 旧バージョンのRPMパッケージを作成していれば、削除しておく
rm ~/rpmbuild/RPMS/*/apr-util-*.rpm
# 最新バージョン番号の取得
APR_UTIL_VERSION=$(wget https://www.apache.org/dist/apr/ --output-document=- | sed --quiet --regexp-extended '/<a name="aprutil">/ s/.+ ([.0-9]+) .+/\1/p')
# ソースファイルの取得
wget ftp://ftp.riken.go.jp/net/apache/apr/apr-util-$APR_UTIL_VERSION.tar.bz2 --directory-prefix ~/rpmbuild/SOURCES
# 署名ファイルの取得
wget https://www.apache.org/dist/apr/apr-util-$APR_UTIL_VERSION.tar.bz2.asc
# 署名の検証
gpg --verify apr-util-$APR_UTIL_VERSION.tar.bz2.asc ~/rpmbuild/SOURCES/apr-util-$APR_UTIL_VERSION.tar.bz2
# ソースRPMパッケージの作成
rpmbuild -ts --rmsource ~/rpmbuild/SOURCES/apr-util-*
# ビルドに必要なパッケージのインストール
sudo yum-builddep ~/rpmbuild/SRPMS/apr-util-*.src.rpm
# ビルド
rpmbuild --rebuild --clean ~/rpmbuild/SRPMS/apr-util-*.src.rpm
# 署名ファイル、ソースRPMパッケージの削除
rm apr-util-*.asc ~/rpmbuild/SRPMS/apr-util-*.src.rpm

# インストール
sudo rpm --upgrade --verbose --hash ~/rpmbuild/RPMS/*/apr-util-*.rpm

distcacheのビルドとインストール 

distcacheは、Apacheのビルドに必要なパッケージですが、APR 1.5APR-util 1.5と同じく標準のYumリポジトリなどには存在しません。また、distcacheのソースファイルには、SPECファイルが含まれていません。そこで、FedoraリリースのソースRPMパッケージを利用します。2 3

まず廃止されたパッケージ署名鍵から目的の公開鍵が置かれているURLを捜し、取り込みます。

# Fedora18の公開鍵を取り込む
sudo rpm --import https://fedoraproject.org/static/DE7F38BD.txt

以下のリポジトリ定義ファイルを新規作成し、リポジトリを追加します。リポジトリ定義ファイル (*.repo) でシンタックスハイライトを有効化する場合は、*.repo のシンタックスハイライトを参照してください。

/etc/yum.repos.d/fedora.repo
[fedora-source-18]
name=Fedora 18 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/18/Fedora/source/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-source-18&arch=$arch
failovermethod=priority
enabled=0
# 旧バージョンのRPMパッケージを作成していれば、削除しておく
rm ~/rpmbuild/RPMS/*/distcache-*.rpm
# ソースRPMパッケージの取得
yumdownloader --source --enablerepo=fedora-source-18 distcache --destdir ~/rpmbuild/SRPMS
# 署名の検証
rpm --checksig ~/rpmbuild/SRPMS/distcache-*.src.rpm
# ビルドに必要なパッケージのインストール
sudo yum-builddep ~/rpmbuild/SRPMS/distcache-*.src.rpm
# ビルド
rpmbuild --rebuild --clean ~/rpmbuild/SRPMS/distcache-*.src.rpm
# ソースRPMパッケージの削除
rm ~/rpmbuild/SRPMS/distcache-*.src.rpm

# インストール
sudo rpm --upgrade --verbose --hash ~/rpmbuild/RPMS/*/distcache-*.rpm

途中、rpmコマンドで署名を検証しています。distcache-1.4.5-23.src.rpm: rsa sha1 (md5) pgp md5 OKなどと表示されれば問題ありません。署名の検証ができなかったときは、pgpが返りません。4

Apacheのビルドとインストール 

Apacheのダウンロードページから、最寄りのミラーサイトのダウンロードURLを取得できます。

# 旧バージョンのRPMパッケージを作成していれば、削除しておく
rm ~/rpmbuild/RPMS/*/{httpd,mod_authnz_ldap,mod_lua,mod_proxy_html,mod_socache_dc,mod_ssl}-*.rpm
# 最新バージョン番号の取得
HTTPD_VERSION=$(wget https://www.apache.org/dist/httpd/ --output-document=- | sed --quiet --regexp-extended '/CURRENT-IS-/ s/.+>CURRENT-IS-([.0-9]+)<.+/\1/p')
# ソースファイルの取得
wget ftp://ftp.riken.go.jp/net/apache/httpd/httpd-$HTTPD_VERSION.tar.bz2 --directory-prefix ~/rpmbuild/SOURCES
# 署名ファイルの取得
wget https://www.apache.org/dist/httpd/httpd-$HTTPD_VERSION.tar.bz2.asc
# 署名の検証
gpg --verify httpd-$HTTPD_VERSION.tar.bz2.asc ~/rpmbuild/SOURCES/httpd-$HTTPD_VERSION.tar.bz2
# ソースRPMパッケージの作成
rpmbuild -ts --rmsource ~/rpmbuild/SOURCES/httpd-*
# ビルドに必要なパッケージのインストール
sudo yum-builddep ~/rpmbuild/SRPMS/httpd-*.src.rpm
# ビルド
rpmbuild --rebuild --clean ~/rpmbuild/SRPMS/httpd-*.src.rpm
# 署名ファイル、ソースRPMパッケージの削除
rm httpd-*.asc ~/rpmbuild/SRPMS/httpd-*.src.rpm

# index.htmlが存在すれば退避
cp /var/www/html/index.html ./
# インストール
sudo rpm --upgrade --verbose --hash ~/rpmbuild/RPMS/*/httpd{,-tools,-devel}-[0-9]*.rpm
# index.htmlを復元
sudo rm /var/www/html/index.html
sudo mv --force index.html /var/www/html/

実運用環境には、aprapr-utilhttpdhttpd-toolsの4つのRPMパッケージをコピーし、インストールします。

# index.htmlが存在すれば退避
cp /var/www/html/index.html ./
# インストール
sudo rpm --upgrade --verbose --hash {apr,httpd}-*.rpm
# index.htmlを復元
sudo rm /var/www/html/index.html
sudo mv index.html /var/www/html/

Apacheの操作

コマンド 効果
apachectl -v バージョンを表示します。
apachectl configtest 設定ファイルに文法ミスが無いか確認します。
sudo apachectl start サービスを開始します。
sudo apachectl stop サービスを終了します。
sudo service httpd reload 設定ファイルを再読み込みします。
sudo apachectl graceful 緩やかに再起動します。クライアントと通信中の子プロセスを強制終了せず、通信が終わったプロセスから順に新しいプロセスに置き換えていきます。
sudo apachectl restart サービスを再起動します。
sudo service httpd restart 親プロセスも含めて、サービスを完全に再起動します。
sudo tail /var/log/httpd/error_log tailコマンドでエラーログの末尾10行を表示します。一般ユーザーには/var/log/httpd以下の読み込み権限が与えられていないため、エラーログやアクセスログの読み取りにはroot権限が必要です。
sudo tail /var/log/httpd/access_log tailコマンドでアクセスログの末尾10行を表示します。

参考ページ

38
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
40