最近在搭建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