Laravel 虚拟开发环境Homestead安装
- PHP
- 2021-06-29
- 4285
- 0
简介
Laravel Homestead 是一个官方预封装的 Vagrant box,它为你提供了一个完美的开发环境,你无需在本地安装 PHP ,web 服务器,或其他服务软件。并且不用担心系统被搞乱! Vagrant box 是完全一次性的。如果有什么地方出错了,你也可以在几分钟内销毁并重建 box !
Homestead 可以运行在 Windows 、 Mac 或 Linux 系统上,并且里面包含了 Nginx Web 服务器、 PHP 7.1 、 MySQL 、 Postgres 、 Redis 、 Memcached 、 Node 、 以及所有利于你开发 laravel 应用的其他程序。
下载安装包
在你启动你的 Homestead 环境之前,你必须安装VirtualBox 5.1、 VMWare或Parallels的其中之一,以及Vagrant。本次采用的VirtualBox 5.1。下面提供了本次需要的安装包下载地址。
VirtualBox-5.1.24-117012-Win.exe 密码:mnry
vagrant_2.0.1_x86_64.msi 密码:tvkk
laravel-VAGRANTSLASH-homestead.rar 密码:63cr(只针对使用Virtualbox)
安装
(1)安装vagrant,vagrant属于跨平台应用,我的系统是win10。安装成功后可以在cmd中输入 vagrant。看到如下图说明安装成功。
(2)安装Virtualbox,直接按照提示安装即可。
(3)安装 Homestead Vagrant Box
vagrant box add laravel/homestead
原本只要如上的命令即可,但由于国内众所周知的网络原因,我们不得不考虑先下载好的box再来添加。上面提供的”laravel-VAGRANTSLASH-homestead.rar”(只针对使用Virtualbox)就是下载好的vagrant box。
解压后将整个文件夹复制到 .vagrant.d/boxes 文件夹中(.vagrant.d文件夹在系统盘的用户文件夹对应的系统用户文件夹,我的是C:\Users\Administrator.vagrant.d),完成后在cmd中输入 vagrant box list,可以看到如下图说明vagrant box安装成功。
(4)安装 Homestead,选择你的工作目录,使用git bash克隆Homestead
git clone https://github.com/laravel/homestead.git Homestead
一旦你克隆完 Homestead 的代码仓库,即可在 Homestead 目录中运行 bash init.sh 命令 来创建 Homesstead.yaml 配置文件:
// Mac / Linux...
bash init.sh
// Windows...双击运行
init.bat
运行完成后,Homesstead.yaml 文件会被放置在你的 Homestead 目录中。
配置 Homestead
(1)配置你的提供者,Homestead.yaml 中的 provider 参数设置取决于你用的是哪一个 Vagrant 提供者 virtualbox 、 vmware_fusion 、 vmware_workstation ,或者 parallels 。你可以根据自己的喜好来设置提供者,这里选择的是virtualbox 。
provider: virtualbox
(2)配置共享文件夹,你可以在 Homestead.yaml 文件的 folders 属性里列出所有想与 Homestead 环境共享的文件夹。这些文件夹中的文件若有变更,它们将会在你的本机电脑与 Homestead 环境自动更新同步。你可以在这里设置多个共享文件夹,这里我在Homestead文件夹中创建了code文件夹用来共享。
folders:
- map: F:/Homestead/code //对应Homestead文件夹的路径
to: /home/vagrant/code
(3)配置 Nginx 站点,对 Nginx 不熟悉吗?没关系。sites 属性可以帮助你可以轻易指定一个 域名 来对应到 homestead 环境中的一个目录上。在 Homestead.yaml 文件中已包含了一个网站设置范本。
sites:
- map: homestead.app //域名
to: /home/vagrant/code/laravel/public //对应Nginx 虚拟机的laravel安装目录
如果你在 Homestead box 配置之后更改了 sites 属性,那么应该重新运行 vagrant reload - -provision 来更新 Nginx 配置到虚拟机上。
(4)配置hosts 文件,必须将在 Nginx sites 中所添加的「域名」也添加到你本机电脑的 hosts 上。 hosts 文件会将请求重定向至 Homestead 环境中设置的本地域名。
192.168.10.10 homestead.app
务必确认 IP 地址与 Homestead.yaml 文件中设置的相同。
启动 Vagrant Box
编辑完 Homestead.yaml 后,进入你的 Homestead 目录并运行 vagrant up 命令。 Vagrant 就会根据 Homestead.yaml 里的配置信息,为虚拟机设置共享文件夹和 Nginx 网站。
如果你出现如下情况:
我们根据提示,貌似是ssh的key没有生成,于是我们要运行如下命令,这个命令可以在git bash下生成。
ssh-keygen
启动成功之后我们可以打开Virtualbox,我们可以看到:
登录vagrant并安装laravel
(1)我们可以用cmd命令行进入Homestead目录,使用如下命令连接,如果使用Virtualbox开启登录需要用户名跟密码,都是 vagrant
vagrant ssh
(2)安装laravel,我们一般是通过composer来进行安装,在Homestead.yaml中我们配置的目录是 to: /home/vagrant/code/laravel/public ,因此我们要进入code目录下安装,输入如下命令:
cd /home/vagrant/code
composer create-project --prefer-dist laravel/laravel
如果要下载其他版本,比如5.3版本,可以使用这个命令:
composer create-project --prefer-dist laravel/laravel blog 5.3.*
(3)完成后测试laravel是否安装成功,
cd /home/vagrant/code/laravel
php artisan
(4)重开一个cmd运行程序,进入Homestead目录重新运行 vagrant reload - -provision 来更新 Nginx 配置到虚拟机上,之后我们可以在Homestead/code文件夹中看到下载的laravel代码。这是在浏览器中通过该域名访问站点了:
http://homestead.app
(5)访问 提示No input file specified,这个可能是laravel的安装目录与Homestead.yaml中配置的目录不一致,或者是Homestead.yaml中配置的目录出现了大写字母。因为在虚拟机中的目录都是小写字母的。修改完成之后进入Homestead目录重新运行 vagrant reload - -provision 来更新 Nginx 配置到虚拟机上。