Linux
 Computer >> コンピューター >  >> スマートフォン >> Linux

Apacheで仮想ホストを設定する方法【Ubuntu対応】

仮想ホストとは?

サーバーのIPアドレスが1つしかない場合でも、複数のWebサイトを運用したいというニーズはよくあります。サブドメインでサイトを分ける方法もありますが、Apacheの仮想ホスト(Virtual Host)機能を使えば、1台のマシン・1つのWebサーバーで複数のドメインを同時に運用できます。多くのレンタルサーバー会社が提供する共用ホスティングでも、この仕組みが採用されています。

また、仮想ホストはローカル開発環境の構築にも非常に便利です。本番環境と同じドメイン構成を自分のPC上で再現できるため、開発効率が大きく向上します。この記事では、Ubuntu Linuxマシン上でApacheの仮想ホストを設定する手順を解説します。

この記事で行うこと

例として、calvin.devhobbes.dev という2つの仮想ホストをローカルマシンに設定します。それぞれ異なるディレクトリを参照し、別々のサイトを表示できるようにします。作業の流れは以下の通りです。

  1. Apacheと必要なパッケージをインストールする
  2. 仮想ホストの設定ファイルを作成する
  3. ドキュメントルートとなるディレクトリを作成する
  4. /etc/hosts にドメインのエントリを追加する
  5. 設定を有効化してApacheを再起動する
  6. テストファイルを作成して動作を確認する

ステップ1:Apacheのインストールと動作確認

まず、コマンドラインから以下のコマンドを実行して、Apacheとそのサポートパッケージをインストールします。

# sudo apt-get install apache2-utils apache2-common

すでにこれらのパッケージがインストールされている場合は、その旨が表示されるだけなので安心してください。

次に、Apacheが正常に動作しているかを確認します。ブラウザで https://localhost にアクセスし、Apacheのデフォルトページが表示されればOKです。表示されない場合は、Apacheのインストール手順を改めて確認してください。

ステップ2:仮想ホストの設定ファイルを作成する

お好みのテキストエディタ(筆者はvim派です)で、新しい設定ファイル /etc/apache2/sites-available/vhosts.conf を作成し、以下の内容を記述します。

<VirtualHost *:80>
ServerName calvin.dev
ServerAlias www.calvin.dev
DocumentRoot /var/www/calvin.dev
</VirtualHost>

<VirtualHost *:80>
ServerName hobbes.dev
ServerAlias www.hobbes.dev
DocumentRoot /var/www/hobbes.dev
</VirtualHost>

記述したらファイルを保存します。

ステップ3:ドキュメントルートのディレクトリを作成する

設定ファイルに指定した2つのディレクトリを作成します。

# sudo mkdir /var/www/calvin.dev
# sudo mkdir /var/www/hobbes.dev

ステップ4:/etc/hosts にエントリを追加する

テキストエディタで /etc/hosts ファイルを開き、末尾に以下の2行を追加します。これにより、これらのドメインへのアクセスがローカルマシン(127.0.0.1)に向くようになります。

127.0.0.1    calvin.dev
127.0.0.1 hobbes.dev

ステップ5:設定を有効化してApacheを再起動する

sites-enabled ディレクトリにシンボリックリンクを作成し、vhosts.conf の設定を有効にします。

# cd /etc/apache2/sites-enabled/
# sudo ln -s ../sites-available/vhosts.conf

なお、Ubuntuでは a2ensite vhosts コマンドでも同じ操作が可能です。

続いて、Apacheを再起動して設定を反映させます。

# sudo /etc/init.d/apache2 restart

ステップ6:テストファイルの作成と動作確認

最後に、どの仮想ホストにアクセスしているかを識別できるよう、各ドキュメントルートにシンプルなHTMLファイルを作成します。

# echo "Hi I'm Calvin" > /var/www/calvin.dev/index.html
# echo "Hi I'm Hobbes" > /var/www/hobbes.dev/index.html

いよいよ動作確認です。ブラウザで https://calvin.dev にアクセスして「Hi I'm Calvin」と表示されれば成功です。同様に https://hobbes.dev にアクセスすると「Hi I'm Hobbes」と表示されるはずです。

応用:サイトの追加とリモートサーバーでの運用

これで仮想ホストが正しく機能する状態になりました。仮想ホストはいくつでも追加でき、設定ファイルに同じ形式のブロックを追記し、対応するディレクトリとhostsエントリを加えるだけで運用できます。

リモートマシンで運用する場合は、vhosts.conf 内の「*:80」をそのマシンの実際のIPアドレス(例:「10.2.10.6:80」)に置き換えてください。

補足:かつてローカルテストによく使われた「.dev」ドメインは、現在Googleが管理するgTLDとなり、HSTSプリロードによってHTTPS接続が必須となっています。ローカル環境でのテストには「.test」や「.localhost」などを使用するのが安全です。

  1. Windows 11/10 で Hyper-V 仮想マシンをセットアップする方法【有効化から作成まで完全解説】

    Windows 11/10 上でテストや検証などの目的に合わせて Hyper-V 仮想マシンをセットアップしたい場合は、この記事をご覧ください。Windows 10/11 で Hyper-V 機能を有効化する方法と、Hyper-V マネージャーで新しい仮想マシンを作成・構成する方法を詳しく解説します。 Microsoft は Windows Server 2008 以降のバージョンに Hyper-V テクノロジーを統合してきました。現在では、Windows 10 および 11 にも Hyper-V が標準搭載されており、一般ユーザーでも、メインマシンの OS(ホスト)に影響を与えることなく、仮

  2. Windows 10でVPNを設定する方法|手動セットアップの手順を徹底解説

    自宅から会社のネットワークにアクセスしたい、あるいは信頼できない公衆Wi-Fiでインターネットを使いたい——そんなときに役立つのがVPNです。VPNは安全な接続を確保し、第三者による個人情報へのアクセスを防ぎます。地域制限されたサイトの閲覧や、追跡されない匿名ブラウジングも可能にする、人気の高いサービスです。 Windows 10に対応したVPNソフトウェアは数多く存在し、パソコンに直接インストールして利用できます。しかし、追加アプリのインストールを避けたい場合は、Windows 10の標準機能を使ってVPNを手動で構築することも可能です。本記事では、Windows 10でのVPN設定方法を詳