0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CentOS7でVirtualHost設定

Last updated at Posted at 2022-10-18

環境

  • macOS Monterey v12.1
  • Vagrant v2.3.1
  • CentOS 7
  • Apache 2.4.6 (CentOS)

VirtualHostとは?

1つのコンピュータで2つ以上のウェブサイトを扱えるようにする設定。
それぞれウェブサイトを配置するディレクトリを作成し、決定する作業が必要になる
※設定ファイル→/etc/httpd/conf/httpd.conf

DocumentRootとは?

Web上に公開されるディレクトリ。
基本的にはDocumentRoot配下にあるファイルが表示される
※ドキュメントルートディレクトリ→/var/www/html

ファイルの準備

DocumentRootのディレクトリを確認する

$ vagrant up
$ vagrant ssh

$ grep -i 'DocumentRoot' /etc/httpd/conf/httpd.conf
# DocumentRoot: The directory out of which you will serve your
DocumentRoot "/var/www/html"
# access content that does not live under the DocumentRoot.

DocumentRootのディレクトリの/var/www/html内にディレクトリとファイルを作成する。
それぞれのindex.htmlにはわかりやすいようにviエディタで<h1>Site A</h1>などを記述する。
※後ほどブラウザで表示するため

var/www/html
         ├ index.html
         ├ site_a
         │  └ index.html
         └ site_b
            └ index.html

hostsの設定

Macのローカルでterminalを立ち上げ、hostsファイルの設定を変更していく
※IPアドレスと文字列を紐づけ、同じIPアドレスでも表示するページを区別させるため。

$ sudo vi /private/etc/hosts

以下の内容を記述。
※IPアドレスは自身の仮想環境のプライベートIPアドレスを使用。

192.168.56.10 a.test
192.168.56.10 b.test
192.168.56.10 hoge.test

VirtualHostの設定(httpd.conf)

httpd.confファイルにVirtualHostsの設定を記述する。
※バックアップも念の為しておく

$ sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bk
$ sudo vi /etc/httpd/conf/httpd.conf

以下VirtualHostの設定を追記

略)...

<Directory "/var/www/html">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

# --------------------------------
# VirtualHost setting

<VirtualHost *:80>
  DocumentRoot "/var/www/html"
  ServerName hoge.test
</VirtualHost>
<VirtualHost *:80>
  DocumentRoot "/var/www/html/site_a"
  ServerName a.test
</VirtualHost>
<VirtualHost *:80>
  DocumentRoot "/var/www/html/site_b"
  ServerName b.test
</VirtualHost>
# --------------------------------

略)...

Apacheの再起動

$ sudo systemctl restart httpd

VirtualHostの確認

以下サイトにブラウザからアクセスし、それぞれ違うページが表示されるか確認。

  • a.test
  • b.test
  • hoge.test

これで同じIPアドレスなのに、違うページを表示することができました。
hostsの設定に関しては忘れないうちに消しておいてください。

参照

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?