Homestead - laravel开发环境搭建(windows)
系统要求 window 7 及以上。 ? 安装包列表 ? virtualbox 5.*版本 vagrant Homestead Box 虚拟机盒子 git ? 安装包资源下载 ? 链接:https://pan.baidu.com/s/1DFZpvn5H0Sg2KEu32DrWJA ? 步骤?
安装 VirtualBox? VirtualBox 是 Oracle 公司的开源虚拟机软件。VirtualBox 号称是最强的免费虚拟机软件,它不仅功能齐全,而且性能也很优异!VirtualBox 支持大部分流行的系统,如:Mac,Windows,Linux 等。 安装包资源下载完成之后,双击安装包进行安装。之后按照提示操作一步一步进行安装即可。 ? 安装 Vagrant? Vagrant 是用来管理虚拟机的工具,支持当前主流的虚拟机系统如 VirtualBox、VMware、AWS 等。Vagrant 的主要作用是提供一个可配置、可移植和复用的软件环境。Vagrant 让你通过编写一个 Vagrantfile 文件来控制虚拟机的启动、虚拟机网络环境的配置、虚拟机与主机间的文件共享,以及启动后自动执行一些配置脚本,如自动执行一个 Shell Script 来安装一些必备的开发工具,如安装配置 MySQL、PHP,甚至是自动配置 Nginx 站点。这意味着,在一个多人开发的项目中,你只需要同步 Vagrantfile 文件,就可以保证参与项目的每个人各自的机器上拥有一致的开发环境。 ? Homestead 介绍? Homestead 利用 Vagrantfile 提供的便利,定制了一整套的可配置、可移植和复用的 Laravel 开发环境。Homestead 虚拟机里面包含了 Nginx Web 服务器、PHP 7、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 开发时需要用到的各种软件。 Homestead 包含了两个东西:
接下来独自说明下。
?
1. Homestead 管理脚本Homestead?脚本使用 Ruby 和 Shell 脚本编写而成。原理是对 Vagrantfile 文件做定制。将从?
所有 Homestead 的版本历史在?此处?可以找到。在本书中,为了提高操作的效率,我们将会使用定制版本的 Homestead。
?
2. Homestead Box 虚拟机盒子
所有虚拟机盒子版本历史?在此。 打不开的用户,下图是截屏: ?
?
? 可以看出 Homestead Box 虚拟机盒子有很多版本。不过,如 Homestead 脚本,为了学习的流畅性,我们接下来将会使用定制版本的虚拟机盒子,你不需要太担心版本的事情。
?
安装和使用 Homestead? 接下来,我们会讲解:
?
1. 下载和导入 Homestead Box由于国内的网络环境原因,我们特意为大家定制了适用于国情的 Homestead 安装包,该安装包提供了以下内容:
接下来让我们开始进行 Homestead 的安装,首先我们需要下载?Homestead 虚拟机盒子,建议大家使用迅雷离线下载或者其他离线下载方式下载此盒子。 下载后的文件为?
在解压目录中? > vagrant box add metadata.json
如下图所示: ?
?
?
至此完成 Homestead Vagrant 盒子的导入。
?
2. 安装 Git如果你先前已使用过?Git for Windows?来作为你进行 Laravel 项目开发时的默认命令行工具,则该工具将会默认为你安装好 Git。 使用以下命令来检测是否成功安装: > git --version git version 2.12.2.windows.2
?
?
?
?
3. 下载 Homestead 管理脚本因国内网络限制,为方便下载和后续管理脚本的流畅使用,本书中将使用定制版本的 Homestead 脚本,定制版有以下优势:
接下来,使用 Git 下载定制版的 Homestead: > cd ~ > git clone https://git.coding.net/summerblue/homestead.git Homestead
Windows 下, ?
?
?
下载完成之后我们使用命令行进入? > cd ~/Homestead > git checkout v7.8.0
接下来我们需要初始化 Homestead: > init.bat
运行以上命令后,会在?
接下来我们将会对?
?
Homestead.yaml 配置文件?
> cd ~/Homestead/ > explorer .
可通过运行下面命令快速打开? > subl ~/Homestead/Homestead.yaml
接下来我们逐个讲解。
?
1. 虚拟机设置Homestead 支持我们对虚拟机的 IP,内存,CPU,虚拟机的默认提供者进行配置。这里我们基本不需要做任何配置,因此可以跳过。 ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox
?
2. SSH 秘钥登录配置
authorize: ~/.ssh/id_rsa.pub
此处我们将公钥和私钥一起同步到虚拟机中: keys: - ~/.ssh/id_rsa - ~/.ssh/id_rsa.pub 接下来我们来生成 SSH Key,开始之前,我们先使用以下命令来检查主机上是否已经生成过 SSH Key: > ls -al ~/.ssh
如果存在? 否则使用以下方法来生成 SSH Key,请将? > ssh-keygen -t rsa -C "[email?protected]" 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]
可以都选择默认,一路? ?
?
? 这个时候如果我们再使用: > ls -al ~/.ssh
查看的话,会出现: ?
?
? SSH 秘钥的两个文件:
?
3. 共享文件夹配置我们可以通过?
为了后续课程讲解,请统一配置如下: folders: - map: ~/code to: /home/vagrant/code 默认? > cd ~ > mkdir code
执行成功后,同样的,我们可以通过? ?
?
? 在后面的章节中,我们将会在该文件夹下放置我们所有的 Laravel 项目,Homestead 会把该文件夹下的项目自动映射到虚拟机的?
?
4. 站点配置站点配置允许你在主机里,通过域名来访问虚拟机里的 Laravel 应用。如下面? sites: - map: homestead.test to: /home/vagrant/code/Laravel/public 目前? 另外,主机里直接访问虚拟机站点,必须通过绑定? > subl C:/Windows/System32/Drivers/etc/hosts
在? 192.168.10.10 homestead.test
至此站点就配置好了,等我们在本地系统 ~/code/ 目录下创建 名为 5. 多站点配置如需创建多站点只需继续添加 虚拟域名和虚拟机目录(如下所示): sites: - map: homestead.test to: /home/vagrant/code/Laravel/public - map: blog.test to: /home/vagrant/code/blog/public 然后执行如下命令重载vagrant即可: vagrant reload --provision 5. 数据库配置我们可以为 Homestead 指定数据库名称,这里使用默认设置即可。 databases: - homestead
?
6. 自定义变量最后,如果你需要自定义一些在虚拟机上可以使用的自定义变量,则可以在? variables: - key: APP_ENV value: local Homestead 自定义变量在本书中并未使用,知悉有此功能即可。
?
运行 Vagrant? 完成了 Homestead 的配置,接下来我们要开始启动虚拟机了。 在命令中输入?
> cd ~/Homestead && vagrant up
第一次启动时,Vagrant 会做以下这几件事情:
成功启动后,还是在? > vagrant ssh
在我们登录成功后,你能看到类似于如下图的界面,现在我们在该终端界面中输入的所有命令都将运行在 Homestead 虚拟机上。 ?
?
? 在虚拟机界面下可以输入退出虚拟机: $ exit
最后尝试关闭 Homestead: > vagrant halt
?
开启 NFS 挂载? 使用 Homestead 开发时经常遇到站点龟速响应的问题,解决方案请见:?Wiki:Laravel Homestead:开启 NFS 解决站点响应缓慢
?
FAQ? 以下是环境部署的常见问题搜集,方便遇到问题的同学查阅。如果你一切正常,请无视以下。
?
1. SSH auth method: private key
?
2. Failed to restart php7.0-fpm.service: Unit php7.0-fpm.service not found.
?
3. 为什么我的项目页面打开这么慢?(重点推荐)
?本文转载于?https://learnku.com/docs/laravel-development-environment/5.8/development-environment-windows/4373(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |