Apache Webサーバーは、最も広く使用されているウェブサーバーの一つで、特にLinuxディストリビューション、特にUbuntuにおいて非常に人気があります。Ubuntu 14.04は、Apacheを使用する際に設定を行うための安定したプラットフォームを提供します。本記事では、Ubuntu 14.04環境でApacheの仮想ホストを設定する方法について、詳細かつ包括的に説明します。
仮想ホストとは?
仮想ホスト(Virtual Hosts)は、1台のサーバーで複数のウェブサイトをホストするための機能です。これにより、異なるドメイン名やIPアドレスを使用して、1つのApacheサーバー上で複数のウェブサイトを同時に運用することができます。Apacheでは、主に2種類の仮想ホストを設定することができます:

- 名前ベースの仮想ホスト(Name-based Virtual Hosts):同じIPアドレス上で複数のドメインを使用する方法。
- IPベースの仮想ホスト(IP-based Virtual Hosts):異なるIPアドレスを使用して複数のウェブサイトをホストする方法。
1. 必要なパッケージのインストール
まず、Apacheがインストールされていることを確認します。Ubuntu 14.04にApacheをインストールするためには、以下のコマンドを実行します。
bashsudo 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
というドメイン用の設定を行う場合、次のようにします。
bashsudo nano /etc/apache2/sites-available/example.com.conf
このファイルに、以下の内容を記述します(仮想ホストの基本的な設定):
apache
ServerAdmin webmaster@example.com 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
に指定したディレクトリを作成します。以下のコマンドを実行します:
bashsudo mkdir -p /var/www/example.com/public_html
その後、サンプルのindex.html
ファイルを作成し、動作確認のために以下のように記述します。
bashecho "Welcome to Example.com!
" | sudo tee /var/www/example.com/public_html/index.html
ステップ3: サイトの有効化
仮想ホストの設定が完了したら、その設定を有効にする必要があります。これには、a2ensite
コマンドを使用します。
bashsudo a2ensite example.com.conf
これにより、example.com.conf
の設定が/etc/apache2/sites-enabled/
ディレクトリにシンボリックリンクとして作成され、Apacheサーバーがこの設定を認識するようになります。
ステップ4: Apacheの再起動
設定を反映させるために、Apacheサーバーを再起動します。
bashsudo systemctl restart apache2
これで、example.com
にアクセスすると、先ほど作成したサンプルページが表示されるはずです。
3. 複数の仮想ホストの設定
複数のウェブサイトをホストするために、さらに仮想ホストを追加することができます。たとえば、example2.com
というドメインを追加する場合、/etc/apache2/sites-available/
に新しい設定ファイルを作成し、上記の手順と同様に設定を行います。
bashsudo nano /etc/apache2/sites-available/example2.com.conf
設定ファイルに次の内容を記述します:
apache
ServerAdmin webmaster@example2.com 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
同様にディレクトリを作成し、サンプルファイルを追加します:
bashsudo mkdir -p /var/www/example2.com/public_html
echo "Welcome to Example2.com!
" | sudo tee /var/www/example2.com/public_html/index.html
そして、サイトを有効にして再起動します。
bashsudo a2ensite example2.com.conf sudo systemctl restart apache2
これで、example2.com
にもアクセスできるようになります。
4. SSL(HTTPS)の設定
セキュアな通信を行うためには、SSL証明書を使用してHTTPSを有効にすることが推奨されます。Ubuntu 14.04では、mod_ssl
モジュールを使用してSSLを設定できます。
まず、mod_ssl
を有効にします。
bashsudo a2enmod ssl
次に、SSL証明書を取得し、/etc/ssl/certs/
に配置します。例えば、自己署名証明書を作成するには、以下のコマンドを使用します。
bashsudo 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 webmaster@example.com
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を再起動します。
bashsudo systemctl restart apache2
これで、https://example.com
でSSL接続を使用したウェブサイトにアクセスできるようになります。
結論
Apacheでの仮想ホスト設定は、複数のウェブサイトを1つのサーバー上で管理するために非常に便利です。Ubuntu 14.04環境での設定は、基本的な手順に従えば簡単に行うことができます。セキュアな通信のためにSSLを導入することも推奨されます。