Homestead 是一个Laravel官方预封装的 Vagrant box ,它为你提供了一个完美的开发环境,你不需要在本地机器安装 PHP、 web 服务器和其他的服务器软件.此套开发环境不仅Laravel可以使用,其他PHP框架如ThinkPHP也可以使用, Homestead其实是在虚拟机搭建的LNMP环境服务器.

安装使用步骤

1. 下载安装virtualboxvagrantup

2. 安装 Homestead Vagrant Box
  1. $ vagrant box add laravel/homestead

若遇到 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 54 错误中断
请使用如下命令继续安装

  1. $ vagrant box add laravel/homestead -c --insecure

3. 安装 Homestead
  1. $ git clone https://github.com/laravel/homestead.git ~/Homestead
  2. $ cd ~/Homestead
  3. // Mac / Linux...
  4. $ bash init.sh
  5. // Windows...
  6. $ init.bat

4. 通过Homestead.yaml文件配置Homestead
  1. $ vi Homestead.yaml
  2. # 映射共享本地项目文件夹code到Homestead环境/home/vagrant/code
  3. folders:
  4. - map: ~/code
  5. to: /home/vagrant/code
  6. # 配置Nginx站点,sites映射"域名"到一个Homestead环境文件夹(此域名只能在本台机器上访问)
  7. sites:
  8. - map: homestead.test
  9. to: /home/vagrant/code/my-project/public
  10. # 修改Hosts文件将访问Homestead站点的请求重定向至Homestead虚拟主机上
  11. $ sudo vi /etc/hosts
  12. # 添加新站点的格式如下所示:
  13. 192.168.10.10 homestead.test
  14. # 确保此监听的 IP 地址是你在 Homestead.yaml 文件中所设置的一致

5. 启动 Vagrant Box

根据你的需求编辑完成 Homestead.yaml,终端进入 Homestead 目录运行 vagrant up命令。Vagrant 将启动虚拟机并自动配置你的共享文件夹和 Nginx 站点。可以通过浏览器访问该站点了:[http://homestead.test](http://homestead.test)

若要删除虚拟机,只需要运行 vagrant destroy —force 命令。

vagrant up 报错 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
请使用网络全局代理继续或参考此issue

6. 重新加载Homestead配置

如果Homestead.yaml点文件有修改,使用reload命令使配置生效
$ vagrant reload --provision
tip:操作都是在Homestead目录运行,

若要共享此站点可被局域网内其他用户访问

  • 如果你想使用域名进行访问,登录到虚拟机服务器进行分享站点
  1. # 登录到虚拟机服务器
  2. $ vagrant ssh
  3. # 进入虚拟机服务器并运行
  4. share homestead.test

即可通过Ngork提供的域名实现局域网内访问,Ngork是一款开源的内网穿透工具.

登录虚拟主机服务器
  1. vagrant ssh
  2. # 查看nginx配置
  3. vi /etc/nginx/nginx.conf
  4. # 查看站点 site.com 的nginx 配置
  5. vi /etc/nginx/sites-enabled/site.com
  6. # 查看服务器使用的php版本
  7. php -v

错误合集

OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
  1. $ vagrant box add laravel/homestead
  2. # 报错
  3. OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 54

添加选项运行命令安装

  1. $ vagrant box add laravel/homestead -c --insecure

Options used:

  • -c or —clean Clean any temporary download files
  • —insecure Do not validate SSL certificates

Vagrant - OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 54


  1. $ vagrant up
  2. OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 54

解决:

  1. 使用VPN全局代理再次运行 vagrant up 即可
  2. 解决方法参考SSL read: error