古い本を読んでいたら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