0%

使用valet开发laravel

使用valet开发laravel的心思是因为这几天收到了一封邮件。这封邮件来自于高品质的 Laravel 和 PHP 开发者社区——laravel china,邮件中有一篇文章叫做在ubuntu linux上使用laravel valet。既然linux都可以使用这个东西了,它在macOS上肯定已经成熟了,于是心一热将自己的机器安装上了valet

安装步骤

  1. 安装nginx brew install nginx
  2. 安装php brew install php71 --witchout-apache
  3. 安装composer brew install composer
  4. 安装valet composer global require "laravel/valet"
  5. ~/.composer/vendor/bin 放入PATH中 ,我用的是fish,修改的是~/.config/fish/config.fish 在最后增加一行set PATH $PATH ~/.composer/vendor/bin
  6. 执行命令valet install
  7. 在终端使用命令创建文件夹mkdir ~/Sites ; cd ~/Sites ; valet park
  8. 执行命令valet start
  9. 在目录~/Sites下执行命令laravel new blog
  10. 然后在浏览器中访问http://blog.dev显示如下图就正常了

遇到的坑

  1. 访问 http://blog.dev遇到的变态问题

    1. 使用chrome浏览器 版本号版本 57.0.2986.0(正式版本)dev (64 位)访问时,永远只出现这样的界面
    2. 使用Safari访问同样情况
    3. 原因一直没有找到,最后迫不得已改了domain那么为app就好了。即便关闭了valet在chrome中访问http://blog.dev仍然显示
    4. 使用命令valet domain app,访问域名改为http://blog.app后正常
  2. 访问http://blog.app什么内容都没有。拒绝服务
    此问题产生的原因主要是因为我之前安装了nginx-fullvalet指定需要安装nginx,所以需要卸载nginx-full,但是我忽略了一个问题就是忘记删除配置文件/usr/local/etc/nginx目录,这个目录保留着之前的配置文件,会导致nginx服务启动异常。 此问题应该是我独有的。

总结

各种配置都需要全新安装,才能够保证valet正常运行。

update: 20170125

valet的原理
valet重新配置了nginx其实就是在nginx.conf中引入一个虚拟机配置文件;

1
2
3
include /Users/hainuo/.valet/Nginx/*; # valet新增
include servers/*;
include valet/valet.conf;# valet新增

将默认主机设置为valet,只要没有单独设定的vhost都通过valet来解析。会在/usr/local/etc/nginx下新增一个valet目录在这个目录下创建一个valet.conf

valet重新配置了dnsmasq;在配置文件/usr/local/etc/dnsmasq.conf末尾增加一行conf-file=/Users/hainuo/.valet/dnsmasq.conf。 这个文件中指定address=/.app/127.0.0.1解析
从上面可以看到valet其实并没有说的那么简单,但是相比homestead的下载安装已经算是非常精悍了。