Apacheサーバーは、ウェブサイトやアプリケーションをインターネット上に提供するために広く使用されている人気のあるオープンソースのウェブサーバーソフトウェアです。この記事では、Apacheサーバーのインストールから設定、運用まで、必要な手順を順を追って説明します。
1. Apacheサーバーのインストール
1.1 Apacheのインストール準備
まず、Apacheをインストールするために、使用するLinuxディストリビューションに応じて以下の手順を実行します。ここでは、Ubuntu/Debian系とCentOS/RedHat系の2つの代表的なLinux環境について説明します。

-
Ubuntu/Debianの場合
以下のコマンドを実行して、最新のパッケージリストを更新します。bashsudo apt update
その後、Apacheをインストールします。
bashsudo apt install apache2
-
CentOS/RedHatの場合
以下のコマンドを使用して、Apache(httpd)をインストールします。bashsudo yum install httpd
インストールが完了したら、サービスを起動します。
bashsudo systemctl start apache2 # Ubuntu/Debian
sudo systemctl start httpd # CentOS/RedHat
サービスが起動しているか確認するために、次のコマンドで状態を確認します。
bashsudo systemctl status apache2 # Ubuntu/Debian
sudo systemctl status httpd # CentOS/RedHat
2. Apacheの基本的な設定
Apacheサーバーは、インストール後にすぐに使用できますが、設定をカスタマイズすることで、より効率的に運用することができます。主な設定ファイルは/etc/apache2/apache2.conf
(Ubuntu/Debian)または/etc/httpd/conf/httpd.conf
(CentOS/RedHat)です。
2.1 ホスト設定
まず、バーチャルホスト(Virtual Host)の設定を行います。これにより、1台のサーバーで複数のウェブサイトをホスティングできるようになります。
以下のディレクトリにある設定ファイルを編集します。
- Ubuntu/Debian:
/etc/apache2/sites-available/000-default.conf
- CentOS/RedHat:
/etc/httpd/conf.d/vhost.conf
以下は、基本的なバーチャルホストの設定例です。
apache
ServerAdmin webmaster@localhost DocumentRoot /var/www/html ServerName www.example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
設定を保存した後、以下のコマンドで設定を有効にします。
-
Ubuntu/Debian:
bashsudo a2ensite 000-default.conf sudo systemctl reload apache2
-
CentOS/RedHat:
bashsudo systemctl restart httpd
2.2 ポートの設定
通常、ApacheはHTTP用にポート80を使用しますが、HTTPSを使用する場合は、SSL設定を行う必要があります。SSLの設定は/etc/apache2/sites-available/default-ssl.conf
(Ubuntu/Debian)や/etc/httpd/conf.d/ssl.conf
(CentOS/RedHat)で行います。
まず、SSLモジュールを有効にします。
-
Ubuntu/Debian:
bashsudo a2enmod ssl
次に、SSL証明書を設定します。証明書がない場合は、自己署名証明書を生成することもできます。
bashsudo openssl req -new -newkey rsa:2048 -days 365 -nodes -keyout /etc/ssl/private/apache.key -out /etc/ssl/certs/apache.crt
その後、default-ssl.conf
を編集し、SSL設定を追加します。
apache
ServerAdmin webmaster@localhost DocumentRoot /var/www/html ServerName www.example.com SSLEngine on SSLCertificateFile /etc/ssl/certs/apache.crt SSLCertificateKeyFile /etc/ssl/private/apache.key ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
設定を反映させるため、Apacheを再起動します。
-
Ubuntu/Debian:
bashsudo systemctl restart apache2
-
CentOS/RedHat:
bashsudo systemctl restart httpd
3. セキュリティの強化
Apacheを運用する際には、セキュリティ対策を講じることが重要です。以下に、基本的なセキュリティ対策をいくつか紹介します。
3.1 不要なモジュールの無効化
Apacheには多くのモジュールがあり、セキュリティリスクを減らすためには、使用しないモジュールを無効にすることが重要です。モジュールのリストは/etc/apache2/mods-enabled/
(Ubuntu/Debian)や/etc/httpd/conf.modules.d/
(CentOS/RedHat)にあります。
不要なモジュールを無効にするためには、次のコマンドを使用します。
bashsudo a2dismod <モジュール名> # Ubuntu/Debian
sudo systemctl restart apache2
3.2 サーバーバージョンの隠蔽
セキュリティを強化するために、サーバーのバージョン情報を表示しないように設定します。apache2.conf
やhttpd.conf
で以下の設定を行います。
apacheServerTokens Prod ServerSignature Off
4. Apacheサーバーのログ
Apacheは、アクセスログやエラーログを詳細に記録します。ログは、トラブルシューティングやセキュリティ分析に重要です。ログファイルの位置は、以下の通りです。
- アクセスログ:
/var/log/apache2/access.log
(Ubuntu/Debian) //var/log/httpd/access_log
(CentOS/RedHat) - エラーログ:
/var/log/apache2/error.log
(Ubuntu/Debian) //var/log/httpd/error_log
(CentOS/RedHat)
これらのログファイルを定期的に確認し、異常がないか監視します。
5. Apacheの最適化
サーバーの負荷を減らし、パフォーマンスを向上させるために、Apacheの設定を最適化することも重要です。以下のような最適化設定を行うことができます。
5.1 KeepAliveの設定
KeepAlive
設定を適切に調整することで、接続の効率を向上させます。/etc/apache2/apache2.conf
または/etc/httpd/conf/httpd.conf
で設定を変更できます。
apacheKeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5
5.2 メモリ使用量の最適化
mpm_prefork
やmpm_worker
などのMPM(マルチプロセスマネージャ)を適切に設定することで、メモリ使用量を最適化します。
apache
StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 150 MaxConnectionsPerChild 3000
6. まとめ
Apacheのインストールと設定は、比較的簡単ですが、セキュリティやパフォーマンスの最適化、適切なログ管理などを行うことで、より堅牢で効率的なサーバー運用が可能になります。設定ファイルを適宜確認し、必要な変更を加え、運用環境に最適な構成に調整しましょう。