简介
Vagrant 提供了一种简单、优雅的方式来管理和配置虚拟机。
Laravel Homestead 是一个官方预封装的 Vagrant Box,它为你提供了一个完美的开发环境,你无需在本地安装 PHP 、web 服务器或任何服务软件。 Vagrant Box 是完全一次性的,不用担心会搞乱你的操作系统!如果有什么地方出错了,你可以在几分钟内销毁并重建该 Box !
Homestead 可以在任何 Windows、Mac 或 Linux 系统上运行,它包括了 Nginx Web 服务器、PHP、MySQL、PostgresSQL、Redis、Memcached、Node
内置软件
Ubuntu 16.04
Git
PHP
Nginx
MySQL
MariaDB
Sqlite3
Postgres
Composer
Node (带有 Yarn、Bower、Grunt 和 Gulp)
Redis
Memcached
Beanstalkd
Mailhog
ngrok
安装与设置
-
需要预安装什么东西呢
-
-
Fh4b9eCWhQSPfBwWFILw5FVCndvilWVjaZTRMLzr.png
git bash
-
将homestead box添加到 vagrant 中
vagrant box add laravel/homestead
因为下载速度的问题,推荐先将homestead box下载下来,然后vagrant box add laravel/homestead *your-box-address下载地址
vagrant box add laravel/homestead /f/vagrantboxs/homesteadv520.box
获取下载地址:vagrant box add laravel/homestead 命令会出现官方下载地址
完成后,你会发现自己的用户文件夹里多出了一个名为.vagrant.d的文件夹,
C:\Users\MyUserName\vagrant.d 我们打开这个文件夹,找到以下路径(请将MyUserName替换成你的系统用户名),将文件夹中名为0的文件夹改名为我们下载的Homestead的版本号,即5.2.0,然后在该文件夹下新建一个叫metadata_url的空白文件 (注意不要有任何文件名后缀,如果你的系统设置了自动隐藏后缀名,请将隐藏去掉,确认文件无任何后缀):文件的内容里,添加以下链接:https://app.vagrantup.com/laravel/boxes/homestead
3.安装homestead
cd ~/vagrant_repo/
git clone https://github.com/laravel/homestead.git homestead
cd homestead
初始化
// Mac / Linux...
bash init.sh
// Windows...
init.bat
启动
vagrant up
连接ssh
vagrant ssh
新建new homestead
// new folder :vagrant init laravel/homestead
git clone https://github.com/laravel/homestead.git homestead
cd homestead
vagrant init laravel/homestead
vagrant box list 如果有多个名称一样(laravel/homestead)版本不一样的box.可以指定version,在composer.json
中加入
"versions": {
"version": "6.1.0",
},
因为默认使用homestead-7的用户名,会重复报错,修改方式:vim ./scripts/homestead.rb,修改所有homestead-7
众所周知,vagrant添加box的时候要从外网下载,那速度、、、(说多了都是泪),所以只好用下载工具下载到本地之后再添加。
一般处理方案
vagrant box add boxName ./downloadBoxName.box
boxName 添加之后的box 名称
./downloadBoxName.box 下载到本地的box
正常这样基本上就可以将box添加上去了。不过,这样添加的box版本号是0,大部分场景版本号影响也不大。但我在使用Laravel Homestead的时候,这边会有版本等一些限制。所以,我们如果能加上版本号是不是会更好一些呢。
带版本号的添加方案
metadata.json
{
"name": "laravel/homestead", # 添加后的box名称
"versions": [{
"version": "2.1.0", # 版本号
"providers": [{
"name": "virtualbox",
"url": "file://E:/xunlei/Laravel-Homestead.box" # 下载到本地的box
}]
}]
}
执行以下命令
vagrant box add metadata.json
QAQ:
搬地方,windows,ipconfig:ip 为192.168.10.0,vagrant 重启失败~~
The specified host network collides with a non-hostonly network!
This will cause your specified IP to be inaccessible. Please change
the IP or name of your host only network so that it no longer matches that of
a bridged or non-hostonly network.
A:更改homestead.yaml 的ip:193.168.10.10
vagrant reload --provision出现异常:
Inserting generated public key within guest...
F:/ashesoft/vagrant/embedded/gems/2.1.1/gems/vagrant-2.1.1/plugins/communicators /ssh/communicator.rb:193:in `initialize': Permission denied @ rb_sysopen - F:/vi rtualmachine/homestead/.vagrant/machines/homestead-7/virtualbox/private_key (Err no::EACCES)
A: private_key private_key ;所以 修改当前账户拥有所有权