Homestead添加多站点的坑

Homestead做Laravel的开发还是很方便的,但是在添加多站点的时候,发现几个坑,来做个记录。

首先,官方文档给了修改homestead.yaml文件的方式,只需要在sites字节下添加一个新的站点配置就好了,如图:
homestead-sites

然后执行
homestead provison
就可以使得配置生效!

但是!!坑来了…去访问的话,你会得到一个502错误!好吧,这个错误相信很多人已经发现了,只是因为新版本的Homestead有个PHP-FPM的配置错误,只需要修改/etc/nginx/sites-enabled/下的homestead.app(请按照自己的实际情况修改)文件,将fastcgi_pass_unix:/var/run/php5-fpm.sock;修改为fastcgi_pass_unix:/var/run/php/php7.0-fpm.sock;就可以了,然后重启Nginx。

但是,重点不是这个好嘛。按照上图的配置,/etc/nginx/sites-enabled/下面应该有两个文件的,每个配置文件代表一个站点。然而,这个版本的Homestead只会使用配置下的第一个站点配置来生成Nginx的配置文件。

而且执行homestead provision是有损数据的。

好吧,这个需要另一种添加站点的方式。

使用SSH登陆Homestead,然后,执行如下图命令:homestead-scripts

是不是有一个serve-laravel.sh的脚本,对,我们需要使用它来帮助我们添加多站点。

执行
sudo /vagrant/scripts/serve-laravel.sh blog.app /home/vagrant/Code/blog/public

然后执行
ls /etc/nginx/sites-enabled/
是不是多出来你刚刚配置的站点配置文件。别高兴太早,那个Bug,记得修改PHP-FPM的相关配置,重启Ngixn,去试试吧,对了还有别忘了hosts。

记录下Homestead的几个坑

最近在Windows下玩玩Laravel,顺便用用Homestead,配置环境的过程中发现几个坑,记录下:

  • 坑1:V2.2.1版本的Homestead有BUG,因为内置了php5.6和php7.0.2两个版本的PHP,所以在多站点配置项,/etc/nginx/sites-enable下的配置文件即可–发现自nginx错误日志
  • 坑2:homestead.yaml文件不能有tabs,必须空格!!