Virtual Hostで複数ドメインを設定する

お名前.comにてドメインを取得する

f:id:shiness:20191205123039p:plain

f:id:shiness:20191205125028p:plain

以下は下記を参考に進める。

blog.goo.ne.jp

今回はmack.sitewww.mack.siteをアクセスした際に別のindex.htmlを表示させるのがゴール

 注意事項

  • 下記箇所の書き方の意味を理解できず同じように記述してしまい、mack.sitewww.mack.siteで別のページを表示することができず。 この記述はwww.nikukyu.clubnikukyu.clubで同一のページを表示させるときの設定であることに気づきました。
server {
   listen 80;
   server_name www.nikukyu.club;
   access_log /home/demo/public_html/nikukyu.club/log/access.log;
   error_log /home/demo/public_html/nikukyu.club/log/error.log;
   location / {
        root /home/demo/public_html/nikukyu.club/public/;
        index index.html index.php;
        }
   }
server {
   listen 80;
   server_name nikukyu.club;
   access_log /home/demo/public_html/nikukyu.club/log/access.log;
   error_log /home/demo/public_html/nikukyu.club/log/error.log;
   location / {
        root /home/demo/public_html/nikukyu.club/public/;
        index index.html index.php;
        }
   }

access_log /home/demo/public_html/nikukyu.club/log/access.log;これらのディレクトリの設定はきちんと自分の環境で試さないと エラーが必ず出ます。その際はnginx -t コマンドで確認すると分かりやすいです。

私の実行環境では access_log /home/mackxxx/demo/public_html/mackxxx.site/log/access.log;でした。ハマりました。

$ sudo ln -s /etc/nginx/sites-available/mackxxx.site /etc/nginx/sites-enabled/mackxxx.site
$ sudo ln -s /etc/nginx/sites-available/www.mackxxx.site /etc/nginx/sites-enabled/www.mackxxx.site
$ sudo ls -l 
$ sudo unlink

コマンド例

mackxxx@xxxxxxxx:/etc/nginx/sites-enabled$ ls -l
total 4
lrwxrwxrwx 1 root root  34 Dec  4 01:27 default -> /etc/nginx/sites-available/default
lrwxrwxrwx 1 root root  39 Dec  6 16:21 mackxxx.site -> /etc/nginx/sites-available/mackxxx.site
-rw-r--r-- 1 root root 305 Dec  6 23:58 www.mackxxx.site
mackxxx@xxxxxxxxx:/etc/nginx/sites-enabled$ sudo unlink www.mackxxx.site

sites-enabledのところでls-laコマンドでシンボリックリンクが作成されているかどうか確認できます。

mackxxx@xxxxxxx:/etc/nginx/sites-enabled$ ls -la
total 8
drwxr-xr-x 2 root root 4096 Dec  7 00:13 .
drwxr-xr-x 8 root root 4096 Dec  4 01:27 ..
lrwxrwxrwx 1 root root   34 Dec  4 01:27 default -> /etc/nginx/sites-available/default
lrwxrwxrwx 1 root root   39 Dec  6 16:21 mackxxx.site -> /etc/nginx/sites-available/mackxxx.site
lrwxrwxrwx 1 root root   43 Dec  7 00:13 www.mackxxx.site -> /etc/nginx/sites-available/www.mackxxx.site

よく使うコマンド

設定ファイルをいじった後はこれをしないと設定が反映されません。

$ sudo /etc/init.d/nginx stop # nginxをストップ  
$ sudo /etc/init.d/nginx start # nginxを起動