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に対応しています。
- 高い安定性:長年の運用実績があり、多くの大規模サイトで使用されています。
なぜソースコードからインストールするのか
多くの場合、パッケージマネージャ(例:apt
やyum
)を使って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の公式サイトから入手できます。ソースコードをダウンロードすることで、自分の環境に最適な形でビルドできます。
公式サイトからのダウンロード手順
- Apache HTTP Serverの公式ダウンロードページにアクセスします。
- 「Source Download」セクションに進み、最新版または希望するバージョンを選択します。
- 「.tar.gz」または「.tar.bz2」形式で提供されています。
- ミラーサイトのリストが表示されるので、任意のミラーサイトを選択し、ソースコードをダウンロードします。
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
buildconf
はautoconf
ツールを使用してconfigure
スクリプトを生成します。autoconf
がインストールされていない場合は、事前にインストールしておきましょう。
Debian/Ubuntu系
sudo apt install autoconf
RHEL/CentOS系
sudo yum install autoconf
依存モジュールの準備(APRとAPR-Util)
ApacheのコンパイルにはAPR(Apache Portable Runtime)とAPR-Utilが必要です。これらがないと、エラーが発生します。
- ソースコード内の
srclib
ディレクトリに移動します。
cd srclib
- 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
- ダウンロードしたファイルを解凍します。
tar -xvzf apr-1.7.0.tar.gz
tar -xvzf apr-util-1.6.1.tar.gz
- 解凍した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=event
:event
型のマルチプロセッシングモジュール(MPM)を使用します。効率的なリクエスト処理が可能になります。
configureの成功確認
configure
が正常に完了すると、以下のメッセージが表示されます。
Configuring Apache Portable Runtime library ...
Configuring Apache HTTP Server ...
creating Makefile
これで、Apacheのビルド環境が整いました。次のステップでは、コンパイルとインストールを実行します。
コンパイルとインストールの実行
configure
スクリプトの実行が完了したら、次はApache HTTP Serverのコンパイルとインストールを行います。この工程では、make
コマンドを使用してソースコードをビルドし、make install
で指定したディレクトリにインストールします。
コンパイルの実行
- ソースコードのディレクトリで以下のコマンドを実行します。
make
make
はソースコードをコンパイルし、実行可能なバイナリファイルを生成します。- コンパイルには数分かかることがあります。環境によって時間が異なります。
- エラーが発生した場合は、依存ライブラリやオプションが不足している可能性があります。
- コンパイルが正常に終了したことを確認するメッセージが表示されます。
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サーバー管理者を目指すことができます。
最後に、セキュリティの強化やパフォーマンスチューニングを行い、実運用に備えることが重要です。
コメント