最近在搭建laravel的homestead环境的时候遇到一些坑,总结一下
安装的vagrant版本是1.9的
1第一个坑是已经add了离线的box,可是启动的时候居然还是从线上下载,然后就是卡的一逼,下不了。
原因:配置文件中对版本有要求,直接add的box版本是0,所以vagrant会认为版本不匹配然后直接去网上下载
解决方法:下载离线的homestead.box(百度云上很多) 建立 homestead.json 然后运行命令 vagrant box add homestead.json
{
"name": "laravel/homestead",
"versions": [{
"version": "1.0.1",
"providers": [{
"name": "virtualbox",
"url": "file://homestead.box"
}]
}]
}
2 homestead版本的问题解决了,up的时候还有另外的问题的ssh(已经安装了git的这个地方不需要改,默认就可以了,后期测试发现不改也可以的)
在git bash下执行如下命令
ssh-keygen -t rsa -C "you@homestead"
成功以后会提示文件所在的目录
我当时的配置路径,剩下的ip,同步什么的参照文档就可以了
3再次up遇到这个报错,吐血。
C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.9.3/lib/vagrant/util/is_port_open.rb:21:in `initialize‘: The requested address is not valid in its context. - connect(2) for "0.0.0.0" port 8000 (Errno::EADDRNOTAVAIL)
查了资料,好多说把vagrant换成1.8,呵呵,多烦啊。然后从一个博客中找到了解决方法
C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.9.3/lib/vagrant/util/is_port_open.rb:21:in `initialize‘: The requested address is not valid in its context. - connect(2) for "0.0.0.0" port 8000 (Errno::EADDRNOTAVAIL)
在./scripts/homestead.rb文件中 把host_ip设置成127.0.0.1
# Default Port Forwarding
default_ports = {
80 => 8000,
443 => 44300,
3306 => 33060,
5432 => 54320,
8025 => 8025,
27017 => 27017
}
# Use Default Port Forwarding Unless Overridden
unless settings.has_key?("default_ports") && settings["default_ports"] == false
default_ports.each do |guest, host|
unless settings["ports"].any? { |mapping| mapping["guest"] == guest }
config.vm.network "forwarded_port", guest: guest, host: host, auto_correct: true, host_ip: ‘本机IP‘
end
end
end
加上红色的东东,再次up,一切ok