Vagrantでサブドメインを設定する

Vagrantでサブドメインを設定する方法を解説する。

私の環境

  • Vagrant(CentOS7)
  • Nginx
  • WordPress
  • Windows 10 pro

作業完了するとできること

サブドメインを複数設定できるので、複数のアプリケーションをひとつのVagrantで動かすことができるようになる。

Vagrantプラグイン”vagrant-hostsupdater”をインストール

サブドメインを設定するためには、Vagrantプラグインである“vagrant-hostsupdater”が必要になる。下記コマンドで、それをインストールする。

vagrant plugin install vagrant-hostsupdater

下記コマンドでVagrantプラグインがインストールされているか確認できる。

vagrant plugin list

Vagrantfileを編集

続いてVagrantfileに設定したいサブドメインを登録する。下記のように、”config.hostsupdater.aliases”に続いて登録したいサブドメインを記入するだけだ。

config.vm.network "private_network", ip: "192.168.33.11"
config.vm.hostname = "localhost"
config.hostsupdater.aliases = ["app1.localnet", "app2.localnet", "app3.localnet"]

Vagrantを起動しているなら、

vagrant halt

をしてから

vagrant up

してローカルサーバの再起動をする。

vagrant-hostsupdaterのエラーが発生するとき

もしVagrantfileの設定後エラーが発生するなら、管理者権限でコマンドプロンプトを起動する。”vagrant-hostsupdater”は、Windows10の場合”C:\Windows\System32\drivers\etc\hosts”のファイルを書き換える。そのための権限が必要になる。

Nginx設定を編集

次にNginxの設定を編集する。Nginxの”server_name”を下記のようにサブドメインとして登録したものに変更するだけだ。

server {
  ...
  server_name app1.localnet;
  ...
}

Nginxを起動中であれば、

sudo systemctl restart nginx

をしてNginxを再起動する。

502エラーが発生する場合

502エラーの解決策として、Nginxの設定の”fastcgi_pass”を下記のようにする。

location ~ \.php$ {
fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include        fastcgi_params;
}

そして、”/etc/php-fpm.d/www.conf”の設定を下記のようにする。

listen.owner = nginx
listen.group = nginx

listen = /var/run/php-fpm/php-fpm.sock

この設定は何?

正直、完全に理解していないのでうまく説明できない。下記リンクが参考になるかもしれない。

403エラーが発生する場合

403エラーは、接続する権限がNginxにないときに発生する。この場合の原因はいろいろとある。私の場合は、下記のようにSELinuxの無効化をすることで解決した。無効化のためにconfigファイルを編集したら、サーバーを再起動。

$ sudo vim /etc/selinux/config
...
SELINUX=disabled
...

確認する

http://app1.localnet/に接続できたならサブドメインの設定は完了。

共有する

このエントリーをはてなブックマークに追加

コメントをする

メールアドレスが公開されることはありません。
*のついている項目は必須です。


*

関連記事

関連記事はありません。