バーチャルホストで複数サイトを管理する

インフラ

0. はじめに

サーバー代をケチるために、バーチャルホストで複数サイトを管理したので、備忘録として記事化することにしました。

1. バーチャルホストとは

1つのサーバーで複数のドメイン(例:hoge-blog.com + fuga-stagram.com)のサイトを公開するための技術になります。 メリットとしては、サーバーのコストを下げることができます。 デメリットとしては、1つのドメインの負荷があがったり、障害が発生した場合、他のドメインにも影響を及ぼしてしまいます。

2. 環境

  • Conoha VPS
  • Ubuntu (20.04.1 LTS)
  • Apache (2.4.41)

3. 前提

  • ドメインを2つ取得していること。今回は以下を例にして記載。
    • hoge-blog.com
    • fuga-stagram.com
  • Apacheのインストールが完了していること。

4. 手順

4-1. バーチャルホスト設定ファイルを作成する

今回は「hoge-blog.com」のバーチャルホスト設定ファイルを作成することとします。

①以下のディレクトリに移動します。

cd /etc/apache2/sites-available

000-default.confという設定ファイルが既に存在するかと思いますので、これをコピーして「hoge-blog.com」用の設定ファイルを作成します。名前は任意ですが、どのドメインに対応しているか把握できる名前をつけるといいかと思います。

cp 000-default.conf hoge-blog.conf

hoge-blog.confを以下のように変更します。

  • ServerName・・・バーチャルホストのドメイン名
  • DocumentRoot・・・ドメインのドキュメントルート(後で作ります)
vi hoge-blog.conf
------------------------------------------
<VirtualHost *:80>
        ...
        ServerName hoge-blog.com
        DocumentRoot /var/www/hoge-blog/
        ...
</VirtualHost>
------------------------------------------

443ポート(https)に設定したい場合も同様です。

vi hoge-blog.conf
------------------------------------------
<VirtualHost *:443>
        ...
        ServerName hoge-blog.com
        DocumentRoot /var/www/hoge-blog/
        ...
</VirtualHost>
------------------------------------------

4-2. バーチャルホスト設定ファイルを登録する

①以下のコマンドを実行し、バーチャルホスト設定ファイルの登録を行います。

a2ensite hoge-blog.host

上記のコマンドを実行すると、/etc/apache2/sites-enable/配下に登録されます。 なお、削除する場合は以下のコマンドを実行します。

a2dissite hoge-blog.host

4-3. テストサイトを作成する

①以下のディレクトリに移動します。

cd /var/www/

②ドキュメントルートとなるディレクトリを作成します。

mkdir hoge-blog
cd hoge-blog

③テスト用ページを作成します。

vi index.html
------------------------------------------
<html>
<body>
hoge blog
</div>
</body>
</html>
------------------------------------------

4-4. 動作確認

①apacheの再起動を行います。

systemctl restart apache2

②ブラウザからページにアクセスしてみて、テストページが表示されればOKです。 キャプチャ.PNG

★別のサイト(fuga-stagram.com)を立ち上げたい場合は、4. 手順をもう一度実施すればOKです。

5. 参考

https://www.server-world.info/query?os=Ubuntu_20.04&p=httpd&f=2

https://karappi.mydns.jp/linux_memo/apache24.html