2023年12月1日发(作者:)
Laravel开发环境搭建-Windows
系统要求
Windows 7 及以上
步骤简略
接下来让我们按照这⼏个步骤来完成整个 Laravel 开发环境的安装及配置:
1. 安装 VirtualBox
2. 安装 Vagrant
3. 导⼊ Homestead Box 虚拟机盒⼦
然后⼀步⼀步按照默认安装即可。
Homestead 介绍
Homestead 利⽤ Vagrantfile 提供的便利,定制了⼀整套的可配置、可移植和复⽤的 Laravel 开发环境。Homestead 虚拟机⾥⾯包含了
Nginx Web 服务器、PHP 7、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使⽤ Laravel 开发时需要⽤到的各种
软件。
Homestead 包含了两个东西:
Homestead 管理脚本;
Homestead Box 虚拟机盒⼦。
接下来独⾃说明下。
打不开的⽤户,下图是截屏:
可以看出 Homestead Box 虚拟机盒⼦有很多版本。不过,如 Homestead 脚本,为了学习的流畅性,我们接下来将会使⽤定制版本的虚
拟机盒⼦,你不需要太担⼼版本的事情。
安装和使⽤ Homestead
接下来,我们会讲解:
1. 下载和导⼊ Homestead Box 虚拟机盒⼦;
2. 安装 Git ,为下载 Homestead 管理脚本做准备;
3. 使⽤ Git 下载 Homestead 管理脚本;
1. 下载和导⼊ Homestead Box
由于国内的⽹络环境原因,我们特意为⼤家定制了适⽤于国情的 Homestead 安装包,该安装包提供了以下内容:
Composer 加速,配置了 Composer 中国全量镜像 ⽀持;
默认集成 Heroku ⼯具;
默认集成 Yarn,并为 Yarn 加了淘宝镜像的加速;
使⽤ CNPM 对 NPM 进⾏加速。
接下来让我们开始进⾏ Homestead 的安装,⾸先我们需要,建议⼤家使⽤迅雷离线下载或者其他离线下载⽅式下载此盒⼦。
下载后的⽂件为 ,请对其进⾏ zip 解压操作,解压成功后可以看到⽬录 ,
lc-homestead-6.4.1-2019072300
此⽬录下包含两个⽂件:
(教程定制化过的 Homestead 盒⼦)
(盒⼦的导⼊配置⽂件)
在解压⽬录中 运⾏以下命令导⼊ Box:
lc-homestead-6.4.1-2019072300
注意:请必须解压到 ⾮中⽂路径,有同学反馈中⽂路径会出现不可预知问题。
如下图所⽰:
如果你使⽤的 Windows 系统在安装 Homestead 的时候报错:The box ‘laravel/homestead’ could
not be found or could not be accessed in the remote catalog.,请下载 MS
Visual C++ 2010 x86 Redistributables 并进⾏安装即可修复。
⾄此完成 Homestead Vagrant 盒⼦的导⼊。
注:导⼊成功后,lc-homestead-6.4.1-2019072300 ⽂件夹可任意删除。
2. 安装 Git
如果你先前已使⽤过 来作为你进⾏ Laravel 项⽬开发时的默认命令⾏⼯具,则该⼯具将会默认为你安装好 Git。
使⽤以下命令来检测是否成功安装:
> git --version
git version 2.12.2.windows.2
注:不需要担⼼你的版本与我不同。
3. 下载 Homestead 管理脚本
因国内⽹络限制,为⽅便下载和后续管理脚本的流畅使⽤,本书中将使⽤定制版本的 Homestead 脚本,定制版有以下优势:
从国内 ⽹站下载,下载速度会⽐ 更快;
对脚本进⾏修改,移除了每⼀次 时 的卡顿。
provisioncomposer self-update
接下来,使⽤ Git 下载定制版的 Homestead:
> cd ~
> git clone https://git.coding.net/summerblue/homestead.git Homestead
Windows 下, ⽬录代表着 你的⽤户名,⽽ 代表着 你的⽤户名 ⽬录,类似:
~C:Users~/HomesteadC:UsersHomestead
注:我们把 Homestead 放在 ~/Homestead 路径下,为⽅便后⾯的讲解,请保持⼀致。
下载完成之后我们使⽤命令⾏进⼊ ⽬录,再使⽤ Git 检出我们需要的 Homestead 版本:
Homestead
> cd ~/Homestead
> git checkout v7.8.0
注:为了保证后续讲解的流畅性,请注意版本的⼀致性,这⾥我们使⽤ v7.8.0。
接下来我们需要初始化 Homestead:
> bash init.sh
运⾏以上命令后,会在 ⽬录下⽣成以下三个⽂件:
~/Homestead
- 主要配置信息⽂件,我们可以在此⽂件中配置 Homestead 的站点和数据库等信息;
- 每⼀次 Homestead 盒⼦重置后(provision)会调⽤的 shell 脚本⽂件;
aliases - 每⼀次 Homestead 盒⼦重置后(provision),会被替换⾄虚拟机的 ⽂件中, ⾥可以放⼀些快捷命令的
~/.bash_aliasesaliases
定义。
接下来我们将会对 ⽂件的各项配置信息进⾏详细讲解。
配置⽂件
⽂件在 ⽂件夹⾥,在 Git-Bash ⾥,你可以使⽤以下命令使⽤⽂件夹打开当前命令⾏所在⽬录:
~/Homestead
> cd ~/Homestead/
> explorer .
可通过运⾏下⾯命令快速打开 ⽂件:
> subl ~/Homestead/Homestead.yaml
为了⾏⽂⽅便,后⾯如果没有提⽰的话, 指的是 ⽂件。
~/Homestead/
⾥的配置⼤致可以分为以下⼏种:
1. 虚拟机设置;
2. SSH 秘钥登录配置;
3. 共享⽂件夹配置;
4. 站点配置;
5. 数据库配置;
6. ⾃定义变量;
接下来我们逐个讲解。
1. 虚拟机设置
Homestead ⽀持我们对虚拟机的 IP,内存,CPU,虚拟机的默认提供者进⾏配置。这⾥我们基本不需要做任何配置,因此可以跳过。
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
2. SSH 秘钥登录配置
authorize
选项是指派登录虚拟机授权连接的公钥⽂件,此⽂件填写的是主机上的公钥⽂件地址,虚拟机初始化时,此⽂件⾥的内容会被复
制存储到虚拟机的 ⽂件中,从⽽实现 SSH 免密码登录。在这⾥我们默认填写即可。
/home/vagrant/.ssh/authorized_keys
authorize: ~/.ssh/id_rsa.pub
keys
是数组选项,填写的是本机的 SSH 私钥⽂件地址。虚拟机初始化时,会将此处填写的所有 SSH 私钥⽂件复制到虚拟机的
/home/vagrant/.ssh/
⽂件夹中,从⽽使虚拟机能共享主机上的 SSH 私钥⽂件,使虚拟机具备等同于主机的⾝份认证。此功能为 SSH 授权
提供了便利,例如在后⾯章节中,我们只需要在 GitHub 上配置⼀个 SSH 公钥,即可实现 GitHub 对虚拟机和主机共同认证。
此处我们将公钥和私钥⼀起同步到虚拟机中:
keys:
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub
接下来我们来⽣成 SSH Key,开始之前,我们先使⽤以下命令来检查主机上是否已经⽣成过 SSH Key:
> ls -al ~/.ssh
如果存在 和 的话,请跳过以下⽣成 SSH 的步骤继续阅读剩下内容。
id_rsaid_
否则使⽤以下⽅法来⽣成 ,请将 your_email@ 替换为你的邮箱:
SSH Key
> ssh-keygen -t rsa -C "your_email@"
Generating public/private rsa key pair.
命令⾏会提⽰让你指定秘钥的名称,按回车键将 保存到默认⽂件名即可:
SSH Key
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
接下来会询问你为 设置密码,按回车键即可,默认为空密码:
SSH Key
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
可以都选择默认,⼀路 键即可,⼤致如下:
Enter
这个时候如果我们再使⽤:
> ls -al ~/.ssh
查看的话,会出现:
SSH 秘钥的两个⽂件:
id_rsa
—— SSH 秘钥的 私钥 (Private Key)
id_
—— SSH 秘钥的 公钥 (Public Key)
3. 共享⽂件夹配置
我们可以通过 来指明本机要映射到 Homestead 虚拟机上的⽂件夹。
folders
map
对应的是我们本机的⽂件夹,格式例如:E:/Homestead/Code,以开发者实际项⽬⽬录为准。
to
对应的是 Homestead 上的⽂件夹。
为了后续课程讲解,请统⼀配置如下:
folders:
- map: ~/Code
to: /home/vagrant/Code
默认 会将我们本机的 ⽂件夹映射到 ⽂件夹上。现在我们本机还没有 ⽂件夹,让我们来创
Homestead~/Code/home/vagrant/Code~/Code
建⼀个:
> cd ~
> mkdir Code
执⾏成功后,同样的,我们可以通过 命令在⽂件夹中打开此⽬录:
explorer .
在后⾯的章节中,我们将会在该⽂件夹下放置我们所有的 Laravel 项⽬,Homestead 会把该⽂件夹下的项⽬⾃动映射到虚拟机的
/home/vagrant/Code
⽂件夹上。
4. 站点配置
站点配置允许你在主机⾥,通过域名来访问虚拟机⾥的 Laravel 应⽤。如下⾯ 配置所⽰,将 映射到⼀个 Laravel 项
sites
⽬的 ⽬录上。这⼀⾏配置,会命令 Homestead 为我们新建⼀个 Nginx 站点,并且把 Web Root 配置到指定⽬录下。Laravel 应
public
⽤的 Nginx 站点 Web Root 配置,默认就是在根⽬录下的 ⽬录。
public
sites:
- map: homestead.test
to: /home/vagrant/Code/Laravel/public
⽬前 项⽬并不存在。这⾥先统⼀配置为以上,请不⽤着急,在后续的章节中,我们会创建该 项⽬。
LaravelLaravel
另外,主机⾥直接访问虚拟机站点,必须通过绑定 来实现。接下来我们利⽤ ⽂件绑定 到虚拟机
hostshostsIP
192.168.10.10hostsC:WindowsSystem32Driversetchosts
上。 ⽂件的完整路径为 ,可使⽤下⾯命令打开:
> subl C:/Windows/System32/Drivers/etc/hosts
如果你没有集成 subl 命令的话, 请使⽤编辑器直接打开⽂件,⽂件路径在
C:WindowsSystem32Driversetchosts 。
在 ⽂件的最后⾯加⼊以下⼀⾏:
hosts
192.168.10.10 homestead.test
⾄此站点就配置好了,等我们在后⾯章节创建 项⽬后,即可通过浏览器访问 站点。
Laravel
5. 数据库配置
我们可以为 Homestead 指定数据库名称,这⾥使⽤默认设置即可。
databases:
- homestead
6. ⾃定义变量
最后,如果你需要⾃定义⼀些在虚拟机上可以使⽤的⾃定义变量,则可以在 中进⾏定义。
variables
variables:
- key: APP_ENV
value: local
Homestead ⾃定义变量在本书中并未使⽤,知悉有此功能即可。
运⾏ Vagrant
完成了 Homestead 的配置,接下来我们要开始启动虚拟机了。
在命令中输⼊ ,能看到 Vagrant 为我们提供了⼀些便利的命令⾏,下⾯简单介绍⼀下 Vagrant 常⽤的⼀些命令⾏的使⽤:
vagrant
命令⾏说明
vagrant init初始化 vagrant
vagrant up启动 vagrant
vagrant halt关闭 vagrant
vagrant ssh通过 SSH 登录 vagrant(需要先启动 vagrant)
vagrant provision重新应⽤更改 vagrant 配置
vagrant destroy删除 vagrant
让我们开始启动 Homestead:
> cd ~/Homestead && vagrant up
第⼀次启动时,Vagrant 会做以下这⼏件事情:
以导⼊的 Homestead 虚拟机盒⼦为模板,新建⼀台虚拟机;
并按照 ⾥的配置信息,对这台新建的虚拟机进⾏配置;
配置完成后启动虚拟机。
成功启动后,还是在 ⽬录中,通过以下命令来 SSH 登录 Homestead 虚拟机中:
~/Homestead
> vagrant ssh
在我们登录成功后,你能看到类似于如下图的界⾯,现在我们在该终端界⾯中输⼊的所有命令都将运⾏在 Homestead 虚拟机上。
在虚拟机界⾯下可以输⼊退出虚拟机:
$ exit
最后尝试关闭 Homestead:
> vagrant halt
注意:本书中因为虚拟机的存在,我们会有两个运⾏命令⾏的环境,⼀个是主机,另⼀个是 Homestead
虚拟机。我们会在命令的前⾯使⽤『命令⾏提⽰符』来区分主机和 Homestead。请记住以 > 开头的命令是运⾏在主机⾥,$
开头的命令是运⾏在 Homestead 虚拟机⾥。详见 写作约定 - 命令⾏提⽰符。
开启 NFS 挂载
使⽤ Homestead 开发时经常遇到站点龟速响应的问题,解决⽅案请见:
FAQ
以下是环境部署的常见问题搜集,⽅便遇到问题的同学查阅。如果你⼀切正常,请⽆视以下。
1. SSH auth method: private key
2. Failed to restart e: Unit e not found.
3. 为什么我的项⽬页⾯打开这么慢?(重点推荐)
4. Homestead 配置好后访问项⽬出现 No input file specified
这个错误的原因是⽂件夹映射没成功。


发布评论