Ownedmedia ウェブ制作に役立つコンテンツを発信中!

サーバー構築 2020.08.12

CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#5:バーチャルホストの設定)

Tags: ,,,

これまでの記事でOSのインストールから基本的な設定、そしてウェブサーバーやデータベースサーバーなどの環境を構築してきました。今回は新たにバーチャルホストの設定を行なっていきます。バーチャルホストが使えることで、ドキュメントルートを切り分けることができ、1つのサーバー内で複数ドメインのサイトを運用することが可能になります。ここではウェブサーバーにApacheを使う前提で進めています。

 

(これまでの記事)
・CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#1:サーバーの契約・OSのインストール)
・CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#2:SSH・公開鍵認証の設定)
・CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#3:ウェブサーバー・PHPのインストール)
・CentOS8 + Apache + Nginx + MariaDBでVPSサーバーに環境構築をする(#4:DBサーバー・phpMyAdminのインストール)

 

1. バーチャルホストのルートディレクトリ作成

まずはデフォルトのドキュメントルートに移動し、新たに作成するバーチャルホスト用のドキュメントルートとなるディレクトリを作成していきます。

# cd /var/www/html/
# mkdir directory-1 directory-2 directory-3 .......

 

これらのディレクトリはrootユーザーで作成していることになるので、ディレクトリの所有者を「apache」に、グループを「一般ユーザー」に全て変更しておきます。

# chown -R apache:[USERNAME] directory-1 directory-2 directory-3 .......

 

(補足)WordPressのプラグインインストールなどを管理画面から行う場合にエラーが出るときは、所有者とグループ両方apacheに設定しておきます。

# chown -R apache:apache directory-1 directory-2 directory-3 .......

 

作成したディレクトリの権限を書き込みができるように変更します。

# chmod -R g+w directory-1 directory-2 directory-3 .......

 

ここまでの変更内容を確認しておきます。

# ls -l
  drwxrwxr-x 2 apache [USERNAME] directory-1
  drwxrwxr-x 2 apache [USERNAME] directory-2
  drwxrwxr-x 2 apache [USERNAME] directory-3
  .......

 

これでバーチャルホスト用のドキュメントルートの作成が完了しました。この後、それぞれのドキュメントルートにホストの情報を紐づける作業を行なっていきます。

 

2. HTTPサーバーのバーチャルホスト設定

まずはHTTPサーバーの設定ファイルを編集していきます。「/etc/httpd/conf/」に移動し編集ファイルである「httpd.conf」のバックアップを取り、エディタで下記のように編集していきます。

# cd /etc/httpd/conf/
# cp httpd.conf httpd.conf.copy
# vim httpd.conf

 

編集するところは1箇所だけで、ローカルホストに接続されるようにしていきます。

【/etc/httpd/conf/httpd.conf】

// 変更前
#ServerName www.example.com:80
↓
// 変更後
ServerName localhost:80

 

続いてバーチャルホスト専用の設定ファイルを新たに作成します。「/etc/httpd/conf.d/」配下に、バーチャルホストの設定ファイルとして任意の名前でファイルを作成しておきます(ここでは「vhost.conf」としています)

# cd /etc/httpd/conf.d/
# vim vhost.conf

 

上記で作成したバーチャルホスト用の設定ファイル(vhost.conf)へ次のようにバーチャルホストの設定を必要なドメイン分作成していき保存します、ドキュメントルートには先ほど作成したディレクトリをそれぞれ指定します。

【/etc/httpd/conf.d/vhost.conf】

<VirtualHost *:80>
  ServerName example.com
  DirectoryIndex index.php index.html
  AddDefaultCharset UTF-8
  DocumentRoot /var/www/html/directory-1
  ServerAlias www.example.com
  <Directory "/var/www/html/directory-1">
    Require all granted
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  ServerName site2.example.com
  DirectoryIndex index.php index.html
  AddDefaultCharset UTF-8
  DocumentRoot /var/www/html/directory-2
  <Directory "/var/www/html/directory-2">
    Require all granted
  </Directory>
</VirtualHost>

.................

 

下記コマンドでhttpdを再起動し設定を反映させて、各ドメインのDNS設定を済ませた後にバーチャルホストで設定したドメインにアクセスします。そこでドキュメントルートのファイルが表示されるかを確認していきます。

# systemctl restart httpd

 

これでバーチャルホストの設定が完了し、複数ドメインでのウェブサイトを同じサーバーで使い分けられるようになりました。

 


 

今回はバーチャルホストの設定についてまとめていきました。VPSサーバーは拡張性もあるので、複数のサイト運用にも適しています。サブディレクトリでサイトを切り分ける場合もありますが、別のサイトとなる場合にはドメインレベルでの切り分けが多いのではないでしょうか。1つだけのウェブサイトを運用する場合ではあまり必要ないかもしれませんが、ステージング用などのテスト環境にも使えると思いますので、導入しておくといいかもしれませんね。

この記事を書いた人

オガワ シンヤ

DesignSupply.代表 / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

  • Twitter

コメントフォーム

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。

内容に問題なければ、お名前・ハンドルネームとメールアドレスを入力いただき、下記の「コメントを送信」ボタンを押してください。

CAPTCHA


この記事もよく読まれています

Scroll to Top
ご質問・ご相談はありませんか ?