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 3 years have passed since last update.

MacでVirtualHost

Last updated at Posted at 2021-09-05

古い本を読んでいたらVirtualHostを使い
異なるドメイン間でのシミュレーションの説明があったが、その当時設定では動いてくれなかった

現行Mac(BigSur 11)で動く設定を備忘録として記録します

コンソールからapacheを動かす

sudo apachectl start

ブラウザで下記URLを確認すると"It Works"と表示されるのを確認する

http://localhost

コンソールからVIMでHostを編集する

sudo vi /etc/hosts

下記の仮装ドメインを追加して保存

127.0.0.1 dummy-host.example.com
127.0.0.1 dummy-host2.example.com

コンソールからapacheを再起動

sudo apachectl restart

追加したドメインにアクセスしてもForbiddenとなる・・・?!

apacheの設定ファイルを編集

sudo vi /etc/apache2/httpd.conf

Virtual hostsの記述箇所を検索する
/vhoとキーインしてnを2回おすと下記の部位を見つけられる筈

# Virtual hosts
#Include /private/etc/apache2/extra/httpd-vhosts.conf

#Includeの#を消してコメントアウトして保存(viを閉じる)

コメントアウトした設定ファイルを編集する(テンプレートを取っておきたい場合は退避)

sudo vi /private/etc/apache2/extra/httpd-vhosts.conf

テンプレートを全消して代わりに下記の内容を書き込み保存する(xxxxxの部分は自分のIDに変える)
仮装ホストのルートとするデイレクトリ等を設定している

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/Users/xxxxx/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
    CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common
  <Directory /Users/xxxxx/docs/dummy-host.example.com>
    Require all granted
  </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/Users/xxxxx/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
    CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
  <Directory /Users/xxxxx/docs/dummy-host.example.com>
    Require all granted
  </Directory>
</VirtualHost>

httpd-vhosts.confで指定したルートディレクトリを作っておく
(chmodでパーミッションの設定もやっておく)

sudo mkdir -p /Users/xxxxx/docs/dummy-host.example.com
sudo mkdir -p /Users/xxxxx/docs/dummy-host2.example.com

コンフィグをチェックする

sudo apachectl configtest
Syntax OK

コンソールからapacheを再起動

sudo apachectl restart

ログを確認する(追加設定したドメイン別にログが出力されている)

$ cd /var/log/apache2/
$ ls -al
total 16
drwxr-xr-x   8 root  wheel   256  9  5 14:57 .
drwxr-xr-x  47 root  wheel  1504  9  5 00:37 ..
-rw-r--r--   1 root  wheel  2643  9  5 14:49 access_log
-rw-r--r--   1 root  wheel     0  9  5 14:57 dummy-host.example.com-access_log
-rw-r--r--   1 root  wheel     0  9  5 14:57 dummy-host.example.com-error_log
-rw-r--r--   1 root  wheel     0  9  5 14:57 dummy-host2.example.com-access_log
-rw-r--r--   1 root  wheel     0  9  5 14:57 dummy-host2.example.com-error_log
-rw-r--r--   1 root  wheel  3912  9  5 14:57 error_log

仮装ドメインのコンテンツを作る

cd /Users/xxxxx/docs/dummy-host.example.com
sudo vim test.html

下記のように編集する

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1> example01 </h1>
</body>
</html>

ブラウザで下記URLを確認

http://dummy-host.example.com/test.html

xample01が見えればOK

見えなければログを確認する

tail /var/log/apache2/dummy-host.example.com-error_log
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?