# 软件安装

homestead的安装过程分为下载BOX与配置脚本两部分。有些网络环境可能出现下载失败的情况,这种情况下可以通过 扩展知识章节的 离线安装 来完成。

# 下载镜像

在线安装 homestead Vagrant Box,文件比较大下载会比较慢,如果失败就多试几次

vagrant box add laravel/homestead

选择虚拟机 virtualbox

image-20200128230526306

# 管理脚本

管理脚本

git clone https://github.com/laravel/homestead.git ~/homestead

创建 homestead.yaml 配置文件

./init.bat

安装的box 镜像储存的位置:以我电脑为例在 /Users/xj/.vagrant.d/boxes

# 升级盒子

经过长时间使用后升级BOX可以带来更多的特性和性能的改善,进入homestead目录执行

vagrant box update

# 环境配置

初次安装的环境需要掌握服务器的进行与基本配置

# SSH登录

生成 key用于远程连接,如果已经存在就不要设置了,会影响你以往服务器的连接

ssh-keygen -t rsa -C "2300071698@qq.com"
#后面一真按enter键,设置密码

这样就可以登录的 homestead 虚拟主机了,此时可以查看上面定义的本地目录与虚拟机目录同步的情况

vagrant ssh

# 时间同步

默认HOMESTEAD的LINUX系统使用的是UTC时间,我们将它为北京时间

#进入HOMESTEAD系统
homestead ssh

#执行设置时区命令
dpkg-reconfigure tzdata

#在弹出的菜单中选择 Asia->Shanghai

# 站点配置

配置开发项目主要在homestead.yaml 配置文件中完成

# 共享文件夹

homestead.yaml 文件的 folders 属性里列出所有与 homestead 环境共享的文件夹。这些文件夹中的文件若有变更,它们会保持本地机器与 homestead 环境之间同步。你可以根据需要配置多个共享文件夹:

folders:
    - map: ~/Code  
      to: /home/vagrant/Code

# map 对应的是我们本机的文件夹
# to 对应的是 homestead 上的文件夹

window用户请使用绝对路径,Linux/Mac不要使用.开始的路径

# 数据库

  • 要从主机的数据库客户端连接到 MySQL,就连接到 127.0.0.1和端口 33060 (MySQL) 。账号密码分别是 homestead,secret。
  • PHP程序连接(虚拟机中连接)端口为 3306

下面修改配置将MYSQL升级到8.0

features:
	...
	- mysql8: true

# 配置域名

配置域名需要修改本机host文件,有以下两种方式

  1. 安装SwitchHosts软软件可以方便的修改host文件,这是推荐方法

  2. 如果系统不能运行SwitchHosts软件时,通过修改 c:/windows/System32/drivers/etc/hosts 文件来操作,需要先移动到桌面或其他文件夹,然后添加如下内容,添加好后再将文件移动回来。

192.168.10.10  hdcms.hd

上面定义了一个域名 hdcms.hd 指向我们的homestead服务器,在homestead.yaml文件内定义域名解析配置:

sites:
    - map: hdcms.hd
      to: /home/vagrant/code/hdcms

现在当我们访问 hdcms.hd 时会访问到 homestead服务器下的 /home/vagrant/code/hdcms 目录

# 显示文件列表

在开发环境下我们希望在浏览器中显示文件列表,进入HOMESTEAD服务器修改NGINX配置文件

vim /etc/nginx/nginx.conf

添加以下指令

http {
	...
	autoindex on; # 显示文件列表
	...
}

# 常用命令

#启动 如果加上 --provision 选项那么添加的新站点会发布到虚拟机上。
cd ~/Homestead && vagrant up

#关闭
vagrant halt

#通过 SSH 登录 vagrant(需要先启动 vagrant)
vagrant ssh

#查看目前安装的box列表
vagrant box list

#删除box镜像
vagrant box remove laravel/homestead

#删除指定版本
vagrant box remove laravel/homestead --box-version 6.4.0

#查看当前 homestead 虚拟机的状态。
vagrant status

# 全局命令

Git for Windows环境中使用

如果我们想在任何目录都可以执行 vagrant 命令,需要进行以下设置 修改 ~/.bash_profile 文件内容,这种设置只在 git for windows 软件中使用

function homestead() {
    ( cd ~/Homestead && vagrant $* )
}

这样我们就可以使用 homestead up 等方式执行了。

设置Windows全局命令

@echo off

set cwd=%cd%
set homesteadVagrant=C:\Users\xj\Homestead

cd /d %homesteadVagrant% && vagrant %*
cd /d %cwd%

set cwd=
set homesteadVagrant=

你需要将脚本中实例路径 C:\Homestead 调整为 Homestead 实际安装路径。创建文件之后,添加文件路径到 PATH,这样你就可以在系统的任意位置运行 homestead up 或 homestead ssh 命令了。

如果想让计算机启动时执行 homestead ,在开始菜单->所有程序->启动 文件夹中设置 homestead.bat内容如下。

homestead up

# Win10安装错误

执行 cd ~/Homestead && vagrant up 开启虚拟机出现以下错误

Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.

If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.
...

进入你的BIOS,然后将virtualization(CPU虚拟化)设置为enable即可

BIOS界面:Configuratio > Intel Virtual Technology > Enabled

image-20180629160604023