Apache HTTP Serverをソースコードからコンパイル・インストールする完全ガイド

Apache HTTP Serverは、世界中で最も広く使用されているWebサーバーの一つです。公式リリースのバイナリパッケージを使用してインストールする方法が一般的ですが、特定の要件に合わせて柔軟に構成したい場合や、最新のセキュリティパッチを迅速に適用したい場合は、ソースコードから直接コンパイルしてインストールする方法が有効です。

本記事では、Apache HTTP Serverをソースコードからダウンロードし、コンパイル、インストールする手順を一から詳しく解説します。環境の準備からコンパイルオプションの設定、トラブルシューティングまでを網羅し、初心者でも安心して取り組めるように丁寧に説明します。

このガイドを読むことで、Apache HTTP Serverを自分の環境に最適な形でインストールできるようになります。Linux環境での操作が中心となりますが、Windows環境での補足も加え、幅広いユーザーに役立つ内容となっています。

目次

Apache HTTP Serverとは


Apache HTTP Server(以下、Apache)は、オープンソースで提供されているWebサーバーソフトウェアで、インターネット上の多くのWebサイトで利用されています。1995年に最初のバージョンがリリースされて以来、安定性、柔軟性、拡張性の高さから、多くの企業や開発者に支持されてきました。

Apacheは、HTTPプロトコルを使用してWebブラウザからのリクエストを処理し、HTMLページや画像、APIレスポンスなどのコンテンツを配信します。また、モジュール構造を採用しており、必要な機能を追加・削除することで軽量化やカスタマイズが可能です。

Apacheの主な特徴

  • オープンソース:誰でも自由に利用、改変、配布が可能で、企業や個人の用途に応じてカスタマイズできます。
  • モジュール方式:必要な機能をモジュールとして追加でき、柔軟に構成が可能です(例:SSL/TLSサポート、リバースプロキシ機能など)。
  • プラットフォーム互換性:Linux、Windows、macOSなど、主要なOSに対応しています。
  • 高い安定性:長年の運用実績があり、多くの大規模サイトで使用されています。

なぜソースコードからインストールするのか


多くの場合、パッケージマネージャ(例:aptyum)を使ってApacheをインストールしますが、ソースコードからインストールすることで以下のような利点があります。

  • 最新バージョンをすぐに使える:公式パッケージが更新される前に、最新の機能やセキュリティパッチを適用可能。
  • 細かいカスタマイズ:モジュールの有効・無効化や特定の設定をコンパイル時に調整できます。
  • 不要な機能を排除:必要な機能だけを組み込むことで、軽量化が図れます。

Apacheをソースからインストールすることで、より自分のサーバーに適した構成が可能になります。

必要な環境と依存関係


Apache HTTP Serverをソースコードからコンパイルするには、事前に必要な環境を整え、必要なライブラリやツールをインストールする必要があります。以下に、一般的なLinux環境での準備手順を説明します。

システム要件


Apacheのコンパイルには、ある程度のディスク容量とメモリが必要です。最低限の要件は以下の通りです。

  • OS:Linux(推奨)、Windows、macOS
  • CPU:1GHz以上
  • RAM:512MB以上(推奨1GB以上)
  • ディスク容量:500MB以上の空き容量

必要なパッケージ


以下のパッケージがApacheのコンパイルに必要です。お使いのディストリビューションに応じてインストールしてください。

Debian/Ubuntu系

sudo apt update
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev

RHEL/CentOS系

sudo yum groupinstall "Development Tools"
sudo yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel

依存関係の詳細

  • GCC(Cコンパイラ):Apacheのソースコードをコンパイルするために必須です。
  • PCREライブラリ:正規表現処理を行うライブラリで、Apacheのモジュールで使用されます。
  • zlib:圧縮をサポートするライブラリで、gzip圧縮通信を可能にします。
  • OpenSSL:HTTPS通信を可能にするためのSSL/TLSライブラリです。

開発環境の確認


以下のコマンドで必要なツールがインストールされているか確認できます。

gcc --version
make --version
openssl version

すべてのツールがインストールされていることを確認できたら、次のステップでApacheのソースコードをダウンロードします。

ソースコードのダウンロード方法


Apache HTTP Serverのソースコードは、Apache Software Foundationの公式サイトから入手できます。ソースコードをダウンロードすることで、自分の環境に最適な形でビルドできます。

公式サイトからのダウンロード手順

  1. Apache HTTP Serverの公式ダウンロードページにアクセスします。
  1. 「Source Download」セクションに進み、最新版または希望するバージョンを選択します。
  • 「.tar.gz」または「.tar.bz2」形式で提供されています。
  1. ミラーサイトのリストが表示されるので、任意のミラーサイトを選択し、ソースコードをダウンロードします。
   wget https://downloads.apache.org/httpd/httpd-2.4.58.tar.gz


※バージョン番号は最新のものに置き換えてください。

バージョンの選択について

  • 安定版(Stable Release):運用環境では、安定性を重視して「Stable Release」の最新バージョンを選択します。
  • 開発版(Development Release):新機能を試したい場合は、開発版を選択しますが、商用利用には注意が必要です。

ソースコードの検証


ダウンロードしたソースコードが改ざんされていないことを確認するため、デジタル署名(PGP署名)やハッシュ値(SHA256)の検証を行います。

wget https://downloads.apache.org/httpd/httpd-2.4.58.tar.gz.sha256
sha256sum -c httpd-2.4.58.tar.gz.sha256


「OK」と表示されれば、ファイルの整合性が確認されたことになります。

これで、ソースコードのダウンロードが完了しました。次のステップでは、ソースコードの展開とコンパイル準備を行います。

ソースコードの展開と前準備


ダウンロードしたApache HTTP Serverのソースコードを展開し、コンパイルの準備を進めます。このステップでは、ソースコードの解凍、ディレクトリ移動、必要な設定を行います。

ソースコードの解凍


ダウンロードしたファイルをtarコマンドで展開します。

tar -xvzf httpd-2.4.58.tar.gz


.tar.bz2形式の場合は以下のコマンドを使用します。

tar -xvjf httpd-2.4.58.tar.bz2

ディレクトリの移動


展開が完了したら、ソースコードのディレクトリに移動します。

cd httpd-2.4.58

前準備(configureスクリプトの生成)


展開したソースコードには、configureスクリプトが含まれています。このスクリプトはApacheのビルド環境を確認し、必要なMakefileを生成する役割があります。

もしconfigureが存在しない場合は、以下のコマンドで自動生成します。

./buildconf


buildconfautoconfツールを使用してconfigureスクリプトを生成します。autoconfがインストールされていない場合は、事前にインストールしておきましょう。

Debian/Ubuntu系

sudo apt install autoconf

RHEL/CentOS系

sudo yum install autoconf

依存モジュールの準備(APRとAPR-Util)


ApacheのコンパイルにはAPR(Apache Portable Runtime)APR-Utilが必要です。これらがないと、エラーが発生します。

  1. ソースコード内のsrclibディレクトリに移動します。
cd srclib
  1. APRとAPR-Utilをダウンロードします。
wget https://downloads.apache.org/apr/apr-1.7.0.tar.gz
wget https://downloads.apache.org/apr/apr-util-1.6.1.tar.gz
  1. ダウンロードしたファイルを解凍します。
tar -xvzf apr-1.7.0.tar.gz
tar -xvzf apr-util-1.6.1.tar.gz
  1. 解凍したAPRとAPR-Utilを適切なディレクトリに配置します。
mv apr-1.7.0 apr
mv apr-util-1.6.1 apr-util

これで、Apacheのソースコードと必要なライブラリが準備完了です。次のステップでは、configureオプションを設定し、Apacheのビルドを進めていきます。

コンフィギュレーションオプションの設定


Apache HTTP Serverをコンパイルする前に、configureスクリプトを実行してビルドオプションを設定します。これにより、必要なモジュールの選択やインストール先の指定などをカスタマイズできます。

基本的なconfigureの実行


ソースコードディレクトリに移動し、以下のコマンドを実行します。

./configure --prefix=/usr/local/apache2
  • --prefix:Apacheをインストールするディレクトリを指定します。デフォルトでは/usr/local/apache2です。

よく使われるオプション一覧


Apacheの機能を拡張したり、最適化するために以下のオプションを追加します。

./configure --prefix=/usr/local/apache2 \
--enable-so \
--enable-ssl \
--enable-rewrite \
--with-included-apr \
--enable-mods-shared=all
  • --enable-so:動的モジュールのサポートを有効化(必要なモジュールを後から追加可能)。
  • --enable-ssl:SSL/TLSを有効にし、HTTPS通信を可能にします。
  • --enable-rewrite:URLのリダイレクトやリライト機能を提供するmod_rewriteを有効にします。
  • --with-included-apr:ソースコードに含まれるAPRとAPR-Utilを使用します。別途インストールせずに済みます。
  • --enable-mods-shared=all:すべてのモジュールを動的に読み込める形でビルドします。

オプションをカスタマイズする場合


特定のモジュールだけをビルドしたい場合は、必要なものを選んで指定します。

./configure --prefix=/usr/local/apache2 \
--enable-so \
--enable-ssl \
--enable-proxy \
--enable-deflate \
--with-mpm=event
  • --enable-proxy:プロキシ機能を有効化します。
  • --enable-deflate:データを圧縮して送信するmod_deflateを有効化します。
  • --with-mpm=eventevent型のマルチプロセッシングモジュール(MPM)を使用します。効率的なリクエスト処理が可能になります。

configureの成功確認


configureが正常に完了すると、以下のメッセージが表示されます。

Configuring Apache Portable Runtime library ...
Configuring Apache HTTP Server ...
creating Makefile


これで、Apacheのビルド環境が整いました。次のステップでは、コンパイルとインストールを実行します。

コンパイルとインストールの実行


configureスクリプトの実行が完了したら、次はApache HTTP Serverのコンパイルとインストールを行います。この工程では、makeコマンドを使用してソースコードをビルドし、make installで指定したディレクトリにインストールします。

コンパイルの実行

  1. ソースコードのディレクトリで以下のコマンドを実行します。
make
  • makeはソースコードをコンパイルし、実行可能なバイナリファイルを生成します。
  • コンパイルには数分かかることがあります。環境によって時間が異なります。
  • エラーが発生した場合は、依存ライブラリやオプションが不足している可能性があります。
  1. コンパイルが正常に終了したことを確認するメッセージが表示されます。
Build complete.

インストールの実行


コンパイルが完了したら、以下のコマンドでApacheをインストールします。

sudo make install
  • sudoを付けることで管理者権限でインストールを行います。
  • 指定した--prefixディレクトリにApacheがインストールされます。

インストール完了の確認


インストールが正常に完了したかを確認します。以下のディレクトリが作成されていることを確認してください。

ls /usr/local/apache2


通常、以下のようなディレクトリ構造が生成されます。

bin/  conf/  htdocs/  logs/  modules/
  • bin/:Apacheの実行ファイル(httpdなど)が格納されます。
  • conf/:Apacheの設定ファイルが配置されます(httpd.confなど)。
  • htdocs/:デフォルトのドキュメントルートで、Webコンテンツを配置する場所です。
  • logs/:Apacheのアクセスログやエラーログが記録されます。
  • modules/:追加モジュールが格納されます。

動作確認


インストールしたApacheが正しく動作するか確認します。

/usr/local/apache2/bin/httpd -v


Apacheのバージョン情報が表示されれば、インストールは成功です。

Server version: Apache/2.4.58 (Unix)
Server built:   2023-12-10

これで、Apacheのコンパイルとインストールが完了しました。次のステップでは、インストール後の確認作業を行います。

インストール後の確認作業


Apache HTTP Serverのインストールが完了したら、実際にサーバーが正しく動作するかを確認します。この工程では、Apacheの起動、ステータス確認、ブラウザからのアクセスを行います。

Apacheの起動


まず、インストールしたApacheを起動します。

sudo /usr/local/apache2/bin/apachectl start
  • apachectlはApacheのコントロールコマンドです。startオプションでサーバーが起動します。

起動確認


Apacheが正常に起動したか確認します。

sudo /usr/local/apache2/bin/apachectl status
  • ステータス情報が表示され、「Apache is running」と表示されれば正常に動作しています。
  • エラーが表示される場合は、設定ファイルの記述ミスやポートの競合が原因の可能性があります。

ポートの確認


Apacheがリッスンしているポートを確認します。

sudo netstat -tulnp | grep httpd
  • デフォルトではポート80が使用されます。
  • HTTPSを有効にしている場合は、ポート443が表示されます。

ブラウザからの動作確認


サーバーが起動している状態で、ブラウザからサーバーのIPアドレスまたはlocalhostにアクセスします。

http://localhost
  • ApacheのデフォルトのWebページが表示されれば、正常に動作しています。
  • 表示されない場合は、ファイアウォールの設定やhttpd.confのミスを確認します。

設定ファイルの編集


Apacheの設定ファイルhttpd.confを編集して動作をカスタマイズできます。

sudo vi /usr/local/apache2/conf/httpd.conf


変更を加えた後は、Apacheを再起動して反映させます。

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

ログの確認


問題が発生した場合は、ログファイルを確認します。

cat /usr/local/apache2/logs/error_log
  • エラーログに詳細が記録されているため、トラブルシューティングの際に役立ちます。

これで、Apache HTTP Serverのインストール後の確認作業が完了です。次のステップでは、インストール中に発生しやすい問題とその解決方法について解説します。

トラブルシューティング


Apache HTTP Serverのコンパイルやインストール中に発生しやすいエラーと、その解決方法を解説します。これらのトラブルは、依存関係の不足や設定ミスが原因であることが多いため、エラーメッセージを参考に迅速に対処しましょう。

1. configureエラー:APRが見つからない

checking for APR... no
configure: error: APR not found. Please install the APR library.


原因:APR(Apache Portable Runtime)がインストールされていない、または--with-included-aprオプションが指定されていません。

解決方法
APRをダウンロードしてsrclibに配置し、再度configureを実行します。

cd srclib
wget https://downloads.apache.org/apr/apr-1.7.0.tar.gz
tar -xvzf apr-1.7.0.tar.gz
mv apr-1.7.0 apr
cd ..
./configure --with-included-apr

2. コンパイルエラー:OpenSSLが見つからない

configure: error: mod_ssl has been requested but can’t be built due to prerequisite failures


原因:OpenSSLがインストールされていないか、パスが通っていません。

解決方法
OpenSSLをインストールします。

Debian/Ubuntu系

sudo apt install libssl-dev

RHEL/CentOS系

sudo yum install openssl openssl-devel


その後、再度configureを実行します。

./configure --enable-ssl

3. ポート80が既に使用されている

(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80


原因:ポート80が他のプロセスで使用されている。

解決方法
ポート80を使用しているプロセスを特定して停止します。

sudo netstat -tulnp | grep :80
sudo kill -9 [PID]


または、Apacheの設定ファイルで別のポート(例:8080)を指定します。

sudo vi /usr/local/apache2/conf/httpd.conf
Listen 8080

4. Apacheの起動エラー:権限が不足している

AH00558: httpd: Could not reliably determine the server's fully qualified domain name


原因:サーバーのホスト名が適切に設定されていません。

解決方法
httpd.confを編集し、以下を追加します。

ServerName localhost


その後、Apacheを再起動します。

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

5. ファイアウォールでアクセスがブロックされている


Apacheが正常に起動していても、外部からアクセスできない場合はファイアウォールの設定を確認します。

解決方法
ポート80または443を許可します。

Ubuntu/Debian系

sudo ufw allow 80
sudo ufw allow 443

RHEL/CentOS系

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

これで、Apache HTTP Serverのインストールや起動時に発生しやすい問題を解決できます。次は、記事のまとめに入ります。

まとめ


本記事では、Apache HTTP Serverをソースコードからコンパイルし、インストールする手順を解説しました。

環境の準備から、ソースコードのダウンロード、コンパイルオプションの設定、インストール、そして動作確認までの流れを一通り説明しました。さらに、インストール中や起動時に発生しやすいエラーとその解決方法についても触れました。

ソースコードからインストールすることで、Apacheを自分の環境に最適な形でカスタマイズでき、不要なモジュールを省いた軽量な構成や、最新のバージョンをいち早く取り入れることが可能になります。

トラブルシューティングを行いながら手順を進めることで、Apacheの内部構造や動作原理の理解も深まります。これにより、運用やトラブル対応に強いWebサーバー管理者を目指すことができます。

最後に、セキュリティの強化やパフォーマンスチューニングを行い、実運用に備えることが重要です。

コメント

コメントする

目次