開発運用

Apache HTTP サーバのインストールと設定

Apache HTTP サーバ(httpd)のインストールと設定方法

Apache HTTP サーバ(httpd)は、広く使用されているオープンソースのウェブサーバソフトウェアであり、インターネット上で動作する多くのウェブサイトで利用されています。UbuntuにApacheをインストールして設定する方法について、詳細に説明します。

1. Apache HTTP サーバのインストール

Ubuntuでは、Apache HTTP サーバをAPT(Advanced Package Tool)を使用して簡単にインストールできます。以下の手順でインストールを行います。

まず、APTパッケージリストを更新します。これにより、パッケージの最新の情報を取得します。

bash
sudo apt update

次に、Apache HTTP サーバをインストールします。apache2パッケージをインストールすることで、Apache HTTP サーバがインストールされます。

bash
sudo apt install apache2

インストールが完了すると、Apacheは自動的に起動します。以下のコマンドでサービスが正しく起動しているかを確認できます。

bash
sudo systemctl status apache2

active (running)と表示されていれば、Apacheが正常に起動しています。

2. Apache サービスの管理

Apacheはシステムサービスとして管理されています。Apacheの起動、停止、再起動、リロードを行うコマンドは以下の通りです。

  • Apacheを起動する
bash
sudo systemctl start apache2
  • Apacheを停止する
bash
sudo systemctl stop apache2
  • Apacheを再起動する
bash
sudo systemctl restart apache2
  • Apacheを自動起動に設定する
bash
sudo systemctl enable apache2
  • Apacheの自動起動を無効にする
bash
sudo systemctl disable apache2

3. ファイアウォールの設定

インストール後、ファイアウォールを設定して、ApacheがHTTPおよびHTTPSのリクエストを受け入れるようにする必要があります。Ubuntuでは、ufw(Uncomplicated Firewall)が一般的に使用されています。

Apacheが提供するサービスを確認するために、以下のコマンドを実行します。

bash
sudo ufw app list

出力結果にApacheが表示された場合、次のコマンドでApacheのサービスを許可します。

bash
sudo ufw allow 'Apache Full'

これでHTTP(ポート80)およびHTTPS(ポート443)のトラフィックが許可されます。

4. ウェブサーバの確認

インストールと設定が完了したら、ウェブブラウザを開き、サーバのIPアドレスまたはドメイン名を入力します。

bash
http://your_server_ip

デフォルトでは、Apacheの「It works!」というページが表示されます。これで、Apache HTTP サーバが正しくインストールされ、動作していることが確認できます。

5. Apacheの設定ファイル

Apacheの設定ファイルは通常、/etc/apache2ディレクトリ内にあります。主要な設定ファイルには以下のようなものがあります。

  • /etc/apache2/apache2.conf:Apacheのメイン設定ファイル
  • /etc/apache2/ports.conf:ポート設定ファイル
  • /etc/apache2/sites-available/000-default.conf:デフォルトの仮想ホスト設定ファイル
  • /etc/apache2/sites-available/:仮想ホストの設定ファイルが格納されるディレクトリ

6. 仮想ホストの設定

Apacheでは、複数のウェブサイトを1つのサーバでホストするために「仮想ホスト」を使用します。以下は仮想ホストの設定手順です。

  1. sites-availableディレクトリ内に新しい仮想ホスト設定ファイルを作成します。例えば、example.com.confという名前で作成します。
bash
sudo nano /etc/apache2/sites-available/example.com.conf
  1. 以下のような基本的な仮想ホスト設定を追加します。
apache
ServerAdmin [email protected] ServerName example.com DocumentRoot /var/www/html/example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
  1. DocumentRootディレクトリを作成し、必要なウェブコンテンツを配置します。
bash
sudo mkdir /var/www/html/example.com
  1. 仮想ホストを有効にするために、次のコマンドを実行します。
bash
sudo a2ensite example.com.conf
  1. Apacheを再起動して、設定を反映させます。
bash
sudo systemctl restart apache2

これで、example.comドメインがサーバでホストされるようになります。必要に応じてDNS設定を行い、ドメイン名が正しくサーバに解決されるようにします。

7. セキュリティ設定

Apacheをインターネットに公開する場合、セキュリティを考慮することが重要です。以下は基本的なセキュリティ設定の一例です。

  • mod_securityの有効化
    mod_securityはWebアプリケーションファイアウォール(WAF)として機能します。これを有効にすることで、不正なリクエストからサーバを保護できます。
bash
sudo apt install libapache2-mod-security2
  • SSL/TLS設定
    HTTPS接続を有効にするために、SSL/TLS設定を行います。mod_sslをインストールし、SSL証明書を取得して設定します。
bash
sudo apt install openssl sudo a2enmod ssl sudo systemctl restart apache2

8. ログの確認

Apacheは、エラーログとアクセスログを記録します。これらのログファイルは、Apacheが正常に動作しているか、問題が発生していないかを確認するために重要です。

  • エラーログ:
bash
sudo tail -f /var/log/apache2/error.log
  • アクセスログ:
bash
sudo tail -f /var/log/apache2/access.log

9. Apacheの最適化

Apacheのパフォーマンスを最適化するために、以下の設定を検討することができます。

  • KeepAlive:接続の再利用を有効にして、クライアントとサーバ間の接続数を減らします。
  • 最大接続数の設定MaxRequestWorkers(旧称MaxClients)を設定し、サーバが処理できる最大接続数を制限します。

これらの設定は、/etc/apache2/apache2.confに記述できます。

10. 終わりに

以上で、Apache HTTP サーバのインストール、設定、セキュリティ、最適化についての基本的な知識を紹介しました。適切な設定を行うことで、安全で信頼性の高いウェブサーバを運営することができます。

Back to top button