開発運用

Apache 仮想ホスト設定方法

Apache Webサーバーは、最も広く使用されているウェブサーバーの一つで、特にLinuxディストリビューション、特にUbuntuにおいて非常に人気があります。Ubuntu 14.04は、Apacheを使用する際に設定を行うための安定したプラットフォームを提供します。本記事では、Ubuntu 14.04環境でApacheの仮想ホストを設定する方法について、詳細かつ包括的に説明します。

仮想ホストとは?

仮想ホスト(Virtual Hosts)は、1台のサーバーで複数のウェブサイトをホストするための機能です。これにより、異なるドメイン名やIPアドレスを使用して、1つのApacheサーバー上で複数のウェブサイトを同時に運用することができます。Apacheでは、主に2種類の仮想ホストを設定することができます:

  1. 名前ベースの仮想ホスト(Name-based Virtual Hosts):同じIPアドレス上で複数のドメインを使用する方法。
  2. IPベースの仮想ホスト(IP-based Virtual Hosts):異なるIPアドレスを使用して複数のウェブサイトをホストする方法。

1. 必要なパッケージのインストール

まず、Apacheがインストールされていることを確認します。Ubuntu 14.04にApacheをインストールするためには、以下のコマンドを実行します。

bash
sudo apt-get update sudo apt-get install apache2

インストールが完了したら、Apacheサーバーが正常に動作していることを確認するために、ブラウザでサーバーのIPアドレス(例: http://localhost)にアクセスして、Apacheのデフォルトページが表示されるかを確認します。

2. 仮想ホストの設定

Ubuntu 14.04では、Apacheの設定ファイルは/etc/apache2ディレクトリ内に保存されています。仮想ホストを設定するには、/etc/apache2/sites-available/ディレクトリに仮想ホスト用の設定ファイルを作成し、sites-enabledディレクトリにシンボリックリンクを作成します。

ステップ1: 新しい仮想ホストの設定ファイルを作成

まず、仮想ホストの設定を保存するためのファイルを/etc/apache2/sites-available/ディレクトリに作成します。例えば、example.comというドメイン用の設定を行う場合、次のようにします。

bash
sudo nano /etc/apache2/sites-available/example.com.conf

このファイルに、以下の内容を記述します(仮想ホストの基本的な設定):

apache
ServerAdmin [email protected] ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined

この設定の各項目の意味は次の通りです:

  • ServerAdmin:サイトの管理者のメールアドレス。
  • ServerName:メインのドメイン名(例: example.com)。
  • ServerAlias:別名のドメイン名(例: www.example.com)。
  • DocumentRoot:ウェブサイトのコンテンツが格納されているディレクトリ(例: /var/www/example.com/public_html)。
  • ErrorLogおよびCustomLog:エラーログとアクセスログの保存先。

ステップ2: ドメインの設定に対応するディレクトリを作成

次に、仮想ホストのDocumentRootに指定したディレクトリを作成します。以下のコマンドを実行します:

bash
sudo mkdir -p /var/www/example.com/public_html

その後、サンプルのindex.htmlファイルを作成し、動作確認のために以下のように記述します。

bash
echo "

Welcome to Example.com!

"
| sudo tee /var/www/example.com/public_html/index.html

ステップ3: サイトの有効化

仮想ホストの設定が完了したら、その設定を有効にする必要があります。これには、a2ensiteコマンドを使用します。

bash
sudo a2ensite example.com.conf

これにより、example.com.confの設定が/etc/apache2/sites-enabled/ディレクトリにシンボリックリンクとして作成され、Apacheサーバーがこの設定を認識するようになります。

ステップ4: Apacheの再起動

設定を反映させるために、Apacheサーバーを再起動します。

bash
sudo systemctl restart apache2

これで、example.comにアクセスすると、先ほど作成したサンプルページが表示されるはずです。

3. 複数の仮想ホストの設定

複数のウェブサイトをホストするために、さらに仮想ホストを追加することができます。たとえば、example2.comというドメインを追加する場合、/etc/apache2/sites-available/に新しい設定ファイルを作成し、上記の手順と同様に設定を行います。

bash
sudo nano /etc/apache2/sites-available/example2.com.conf

設定ファイルに次の内容を記述します:

apache
ServerAdmin [email protected] ServerName example2.com ServerAlias www.example2.com DocumentRoot /var/www/example2.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined

同様にディレクトリを作成し、サンプルファイルを追加します:

bash
sudo mkdir -p /var/www/example2.com/public_html echo "

Welcome to Example2.com!

"
| sudo tee /var/www/example2.com/public_html/index.html

そして、サイトを有効にして再起動します。

bash
sudo a2ensite example2.com.conf sudo systemctl restart apache2

これで、example2.comにもアクセスできるようになります。

4. SSL(HTTPS)の設定

セキュアな通信を行うためには、SSL証明書を使用してHTTPSを有効にすることが推奨されます。Ubuntu 14.04では、mod_sslモジュールを使用してSSLを設定できます。

まず、mod_sslを有効にします。

bash
sudo a2enmod ssl

次に、SSL証明書を取得し、/etc/ssl/certs/に配置します。例えば、自己署名証明書を作成するには、以下のコマンドを使用します。

bash
sudo openssl genpkey -algorithm RSA -out /etc/ssl/private/example.com.key sudo openssl req -new -key /etc/ssl/private/example.com.key -out /etc/ssl/certs/example.com.csr sudo openssl x509 -req -in /etc/ssl/certs/example.com.csr -signkey /etc/ssl/private/example.com.key -out /etc/ssl/certs/example.com.crt

SSL仮想ホストを設定ファイルに追加します。

bash
ServerAdmin [email protected] ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html SSLEngine on SSLCertificateFile /etc/ssl/certs/example.com.crt SSLCertificateKeyFile /etc/ssl/private/example.com.key ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined

設定後、Apacheを再起動します。

bash
sudo systemctl restart apache2

これで、https://example.comでSSL接続を使用したウェブサイトにアクセスできるようになります。

結論

Apacheでの仮想ホスト設定は、複数のウェブサイトを1つのサーバー上で管理するために非常に便利です。Ubuntu 14.04環境での設定は、基本的な手順に従えば簡単に行うことができます。セキュアな通信のためにSSLを導入することも推奨されます。

0 0 投票数
Article Rating
購読する
通知する
guest
0 Comments
最古
最新 最も投票された
インラインフィードバック
すべてのコメントを見る
Back to top button
0
あなたのご意見をぜひお聞かせください。コメントをお願いします。x