1. TOPTOP
  2. インフラ

CentOS7,PHP7,MySQL5.6でWordPressサイトを構築 その8(バーチャルホストの設定)

|

thumbnail

前回の記事(新しいタブで開く)ではWebサーバーのインストールと必要な設定を行いました。今回はバーチャルホストの設定について説明いたします。

バーチャルホストとは?

サーバーを持っているとそのサーバーで複数のドメインを運用したくなる時があります。そうした時にサーバーをたくさん借りるといろいろ大変なので1つのIPアドレスで、複数のドメインを持てると便利になります。具体的に説明するとこんな感じになります。

  • http://hoge1.com でリクエスト → /var/www/hoge1.com/index.htmlのファイルを表示
  • http://hoge2.com でリクエスト → /var/www/hoge2.com/index.htmlのファイルを表示

なおバーチャルホストを設定するためには、あらかじめIPアドレスと任意のIPアドレスを結びつけるための名前解決をする(DNSの設定)必要があります。その方法については、こちらの記事(新しいタブで開く)をご覧ください。

バーチャルホストの設定方法

SSH接続でリモートサーバーに接続して、作業用ユーザーからroot権限をもつユーザに昇格した上で以下のコマンドを実行します。

バーチャルホスト用のドキュメントルートディレクトリを作成

# cd /var/www

まずデフォルトでドキュメントルートディレクトリに設定されている、/var/www/htmlディレクトリの親ディレクトリである、/var/wwwまで移動します。

# mkdir hoge1.com
# chown apache:echizenya hoge1.com

その位置で1つ目のバーチャルホストである、hoge1ディレクトリを作成し、そのディレクトリのユーザーとグループ名を変更します。

# cd /var/www/hoge1.com
# vi index.html
Hello World from hoge1.com
# chown apache:echizenya index.html

ブラウザで”http://hoge1.com”にアクセスしたときに”Hello World from hoge1.com”と表示される、index.htmlを作成します。

バーチャルホストの設定

# vi /etc/httpd/conf/httpd.conf
Listen 80
NameVirtualHost *:80 ← 追記

Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)にバーチャルホストの待受けをすることを宣言します。全ての80番ポートへのアクセスに対して有効になるように追記をします。

# cd /etc/httpd/conf.d
# vi hoge1.com.conf
<VirtualHost *:80>
        DocumentRoot /var/www/hoge1.com
        ServerName hoge1.com
        ErrorLog logs/hoge1.com-error_log
        CustomLog logs/hoge1.com-access_log common
</VirtualHost>

hoge1.comのバーチャルホストを設定します。”/etc/httpd/conf.d”ディレクトリの下に新たに”hoge1.com.conf”ファイルを作成します(”/etc/httpd/conf”の下ではないことに注意してください)。ErrorLogとCustomLogは任意で記述します。ドメインごとにアクセスログを出力させたい場合、そのドメイン名を含むように記述します。

Apacheの再起動

# systemctl restart httpd.service

最後にApacheを再起動します。再起動後に”http://hoge1.com”にアクセスすると、Hello World from hoge1.comと表示されます。また”hoge2.com”のバーチャルホストを追加で設定したい場合、同様の作業を繰り返します。