Nginx 多站点配置
最近学习和练习的时候,为Laravel应用程序添加了好几个站点,有些程序删除之后站点却还留着,这让强迫症感到非常难受,上次解决了这个问题之后并没有记录一下,于是导致今天又花了很多时间折腾,所以特地来写下我的第一篇帖子,本帖基于已经正确安装好Laravel之后。如果有什么不正确的地方,还望指正。
配置站点
根据官方文档,我们有两种添加站点的方式:
- 1.在
/Homestead/src/stubs/Homestead.yaml
文件中添加站点:
sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
然后在 Homestead 目录中执行:
vagrant provision
不过官方文档里面提到,这个操作是具有破坏性的,当执行 provision
命令,现有的数据库会被摧毁并重新创建。
- 2.SSH 进入 Homestead 环境中,使用 serve 命令文件添加站点,执行以下命令:
serve domain.app /home/vagrant/Code/path/to/public
由以上任意一种方式添加站点之后,我们都应该将新的站点到本机的/etc/hosts
文件中:
# homestead config
192.168.10.10 homestead.app
到这里,站点就添加完成啦!
修改、删除站点
(这里1和2分别对应上面添加站点的1和2两种方式)
- 1.在
/Homestead/src/stubs/Homestead.yaml
文件中修改或者删除站点,然后在 Homestead 目录中执行:
vagrant provision
- 2.你会发现由
serve
命令添加的站点并没有出现在Homestead.yaml
文件中,根据
/Homestead/scripts/serve.sh
文件,可以看到serve
命令会创建一个 nginx 的 site ,做些链接, 最后重启 nginx 和 php-fpm:
echo "$block" > "/etc/nginx/sites-available/$1"
ln -fs "/etc/nginx/sites-available/$1" "/etc/nginx/sites-enabled/$1"
service nginx restart
service php5-fpm restart
所以SSH 进入 Homestead 环境后,执行以下指令:
cd /etc/nginx/sites-available
ls
这时候就能够看到所有的站点啦!然后可以通过执行以下命令删除站点:
sudo rm homestead.app
或者执行以下命令然后编辑文件对站点进行修改:
sudo vi homestead.app
以上就是今天的学习收获,看完之后留下你宝贵的意见吧~