转载:http://www.javashuo.com/article/p-huvwhsqi-cx.htmlphp
写在开头
关于Laravel框架的Homestead开发环境安装及部署,网上有不少相关的技术文章,其中Eagle Luo有一篇文章写得很是好,个人第一个homestead环境基本上就是在他这篇文章的指导下完成安装的。原文标题是:“”Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead)”,原文地址以下:https://blog.sbot.io/articles/1 。
尽管Eagle Luo的这篇文章已经写得很是详细了,但我在安装过程当中依然遇到了很多的问题,最主要的地方有两个:一个就是homestead默认安装位置(默认为C:\Users\XXX)的问题,另外一个是当你的windows登陆用户名使用的是中文时(如C:\Users\小蚂蚁)homestead虚拟机安装报错的问题。因此,我在这里把本身的安装过程作一个梳理,也给初次安装Laravel Homestead的小伙伴提供一个参考和借鉴。mysql
Laravel Homestead简介
Laravel Homestead是Laravel官方为开发者提供的一套完善的重量级本地开发环境,它是一个打包好各类 Laravel 开发所需软件和工具的 Vagrant 盒子,该盒子为咱们提供了一个优秀的开发环境,有了它,咱们再也不须要在本地环境安装 PHP、Composer、Nginx、MySQL、Memcached、Redis、Node 等其它工具软件,咱们也彻底不用再担忧误操做搞乱操做系统 —— 由于 Vagrant 盒子是一次性的,若是出现错误,能够在数分钟内销毁并从新建立该 Vagrant 盒子!laravel
Laravel Homestead的预装软件
Laravel Homestead 能够运行在 Windows、Mac 以及 Linux 等主流操做系统上,预装的软件和工具列表以下:
Ubuntu 18.04
Git
PHP 7.2
PHP 7.1
PHP 7.0
PHP 5.6
Nginx
Apache(可选)
MySQL
MariaDB(可选)
SQLite3
PostgresSQL
Composer
Node(With Yarn, Bower, Grunt, and Gulp)
Redis
Memcached
Beanstalkd
Mailhog
Neo4j(可选)
MongoDB(可选)
Elasticsearch(可选)
ngrok
wp-cli
Zend Z-Ray
Go
Miniogit
安装Laravel Homestead 须要的软件及工具
一、Git
二、VirtualBox
三、Vagrant
四、Homestead Box (Lavavel官方提供的Vagrant盒子)github
具体安装配置步骤及测试方法详解
一、安装Git
Windows版本的Git官网地址:https://gitforwindows.org/sql
Git 的安装很简单,按默认选项进行就能够了。
安装完毕以后,咱们在桌面或文件夹的空白位置单击鼠标右键,选择“Git Bash Here”,就能够打开Git的命令窗口。数据库
初次使用Git的小伙伴能够在git窗口右击,选择“options”,而后对Git窗口的text等选项进行设置。windows
二、安装VirtualBox
VirtualBox 是一款开源虚拟机软件,使用者能够在VirtualBox上安装而且执行Solaris、Windows、DOS、Linux、OS/2 Warp、BSD等系统做为客户端操做系统。Laravel Homestead就是使用VirtualBox建立的一个虚拟机。浏览器
VirtualBox的官网地址:https://www.virtualbox.org/bash
单击Download按钮进入下载页面,选择windows版本进行下载,安装。
三、安装Vagrant
vagrant是一款虚拟机管理工具,使用它能够快速搭建可复用、可移植的开发环境。 Laravel Homestead就是一个配置好了的虚拟机开发环境,Laravel官方将它打包成了一个Vagrant盒子,方便使用者将它移植到本身的电脑上。
Vagrant的官网地址:https://www.vagrantup.com/
单击Download按钮进入下载页面,选择windows版本进行下载,安装。
四、安装Laravel Homestead
安装好上面3个软件以后,咱们就能够开始安装Homestead了。安装方式有两种:
第一种是在线安装方式:
若是你以为你的网速足够快,能够在线下载Homestead的box(服务器在国外),那么能够打开Git Bash,输入
vagrant box add laravel/homestead
系统将会自动为你下载及安装Homestead盒子。
第二种是离线安装方式:(强烈推荐)
(1)、下载Laravel Homestead 的box盒子
使用离线安装的方式,咱们首先要去下载一个最新版本的Laravel Homestead 的盒子,其目前最新版本为6.4.0。
下载地址:https://vagrantcloud.com/laravel/boxes/homestead/versions/6.4.0/providers/virtualbox.box
该盒子的大小为2.18GB,建议你们使用迅雷等下载工具进行下载。
注意:若是你须要下载不一样版本(或最新版本),请将以上地址中versions/后的数字版本号替换成相应的版本号。
下载完成后,咱们将下载的文件命名为Homestead-6.4.0.box。并将该文件放到一个指定目录存放,我把它放在F:\virtualBox VMS\homesteadbox文件夹中。
(2)、设置VAGRANT_HOME环境变量改变默认位置
Vagrant 执行add box命令的时候会将Laravel Homestead盒子相关的文件默认保存在 C:\Users\xxx.vagrant.d文件夹中(其中,会有一个大小约为2.2GB左右的虚拟磁盘文件),
若是你的C盘空间过小,或者你不想将这些文件放在默认的用户文件夹中,咱们能够经过设置VAGRANT_HOME环境变量改变默认位置,设置方法能够在git命令行窗口执行下面2条命令:
setx VAGRANT_HOME “F:\HomeStead\.vagrant.d”
setx VAGRANT_HOME “F:\HomeStead\.vagrant.d” /M (系统变量)
或者直接在windwos环境变量中添加VAGRANT_HOME用户变量和系统变量
(3)、安装Laravel Homestead
设置好VAGRANT_HOME环境变量后,咱们就能够来安装Laravel Homestead 了。
在Windows中,打开你存放Homestead-6.4.0.box的文件夹(个人是F:\virtualBox VMS\homesteadbox),在该文件夹窗口右击,选择“Git Bash Here”,进入Git的命令行窗口
在这里执行命令
vagrant box add laravel/homestead Homestead-6.4.0.box
1
输入命令后,会开始导入并安装咱们下载的Homestead盒子。
稍微等待一下子以后,Laravel/Homestead盒子就添加完成了。
此时,在咱们指定的目录(F:\HomeStead)中就多出了一个名为.vagrant.d的文件夹,里面有Laravel/Homestead盒子的一些相关文件。
在Git中使用vagrant box list命令能够看到,Vagrant盒子列表中就有了一个名为laravel/homestead的box盒子。
可是,列表中显示的laravel/homestead的版本号为0,咱们要把它改为正确的版本号(6.4.0),能够打开F:\HomeStead文件夹,找到如下路径:
F:\HomeStead.vagrant.d\boxes\laravel-VAGRANTSLASH-homestead
将文件夹中名为0的文件夹更名为咱们下载的Homestead的版本号,即6.4.0。
而后在该文件夹下新建一个叫metadata_url的空白文件 (注意不要有任何文件名后缀,若是你的系统设置了自动隐藏后缀名,请将隐藏去掉,确认文件无任何后缀):
文件的内容里,添加如下连接:
https://app.vagrantup.com/laravel/boxes/homestead
1
保存好以后,咱们再次使用vagrant box list 命令查看盒子列表,就会发现,laravel/homestead的版本号已经正确显示了。
至此,Laravel Homestead盒子安装完毕。
五、配置Laravel Homestead
首先,咱们去laravel官方的Git上下载一个Homestead的配置文件夹。
在Git Bash里输入
git clone https://github.com/laravel/homestead.git ~/homestead
1
该命令会将Github上Homestead项目配置克隆至本地~/homestead文件夹中(也就是c:\users\xxx目录,xxx为你的用户名)。打开下载的homestead配置文件夹,会发现里面有不少homestead的项目配置文件
将里面全部的文件复制到咱们以前指定的目录F:\HomeStead之中
此时,该文件夹中既包含了vagrant盒子的文件夹.vagrant.d,也包含了Homestead的配置文件,也就是和laravel/homestead相关的文件咱们都放在这个文件夹中了,之后咱们启动Homestead虚拟机时就能够直接在F:\HomeStead目录下进行,从而解决了windows登陆用户名为中文时启动虚拟机报错的问题。
接下来,咱们就能够开始建立Homestead配置文件了:
在F:\HomeStead目录中启动Git Bash,执行命令:
bash init.sh
1
而后在F:\HomeStead文件夹中,咱们能够看到多出了一个名为Homestead.yaml的文件。使用文本编辑器打开它,能够看到内容以下:
---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/code
to: /home/vagrant/code
sites:
- map: homestead.test
to: /home/vagrant/code/public
databases:
- homestead
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# zray:
# If you've already freely registered Z-Ray, you can place the token here.
# - email: foo@bar.com
# token: foo
# Don't forget to ensure that you have 'zray: "true"' for your site.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
这些配置项的主要含义是:
ip: "192.168.10.10"
1
指的是虚拟机的IP地址,初次使用homestead的小伙伴能够不用修改这个地址。
memory: 2048
1
指的是给虚拟机的配置的内存大小,默认值是2048MB
cpus: 1
1
指的是给虚拟机的配置CPU数量,默认是一个
provider: virtualbox
1
表示使用哪一个 Vagrant 提供者:virtualbox或者vmware_workstation,你能够将其设置为本身喜欢的提供者,默认是virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
1
2
3
4
authorize后面的文件是用来ssh进入虚拟机的公钥,而keys后面的文件是咱们的私钥。
folders:
- map: ~/code
to: /home/vagrant/code
1
2
3
folders用来设置本机和虚拟机的同步文件夹,map后指定的文件夹(即~/Code)将被映射到虚拟机系统中to后指定的路径,即/home/vagrant/Code。
咱们把本机Code文件夹同步至虚拟机中,这样一来咱们在能够在虚拟机系统中访问到咱们的项目文件,而且在~/Code中所进行的修改会实时同步在虚拟机系统对应的文件中。
sites:
- map: homestead.test
to: /home/vagrant/code/public
1
2
3
sites用来设置站点域名地址的映射,这里是指将homestead.test域名映射到/home/vagrant/code/public文件夹。这样,咱们在浏览器地址栏中输入http://homestead.test就能够访问 /home/vagrant/code项目的首页了。
databases:
- homestead
1
2
这里指虚拟机的数据库名称。
注:虚拟机环境下默认的MySQL服务器管理员用户名为homestead,密码是secret。推荐使用phpmyadmin或HeidiSQL来进行数据库管理
假设咱们要建立一个blog项目,项目代码放在F:\code\blog中,咱们就能够进行以下的配置:
若是你要进行多站点的配置,能够参照以下方法:
要想让你设置的域名生效,还要在hosts文件中添加域名指向:
192.168.10.10 homestead.test
192.168.10.10 meetup.test
1
2
*hosts文件的路径:C:\Windows\System32\drivers\etc*
要注意的是,host文件在该路径下修改后不能直接保存,咱们能够先把它移动到桌面,修改完毕后再移动回原地。修改后的host文件内容:
六、创建用于ssh的公钥和私钥
从此咱们要经过ssh链接homestead虚拟机的话,须要有链接虚拟机的公钥和私钥,下面咱们就来创建公钥和私钥。
首先,咱们在F:\HomeStead文件夹中启动Git Bash,执行命令mkdir .ssh,建立.ssh文件夹;
mkdir .ssh
1
接着,执行命令cd .ssh,进入.ssh文件夹中;
cd .ssh
1
接下来,咱们运行生成密钥的命令:
ssh-keygen -t rsa
1
系统提示输入保存秘钥的文件路径,输入路径 /f/HomeStead/.ssh/id_rsa ,按回车。接下来的两个提示直接按回车,最后显示秘钥建立成功,就OK了。
打开F:\HomeStead下的.ssh文件夹,你会发现多了两个文件,这就是咱们刚才建立的公钥和私钥
建立好公钥和私钥后,别忘了在Homestead.yaml文件中把它们的路径设置好。
接下来,咱们能够尝试启动虚拟机了!
七、启动Homestead虚拟机
启动Homestead虚拟机,系统会在virtualbox中建立一个虚拟机,虚拟机保存的默认位置是C:\Users\xxx\VirtualBox VMs,能够打开virtualbox,单击“管理”->"全局设定"菜单查看
咱们把这个虚拟机的保存位置也修改一下,我把它设置为F:\virtualBox VMS (请自行建立好改文件夹)
设置好后,咱们来尝试启动虚拟机。(请保持virtualbox为启动状态,听说是windows10的bug)
在F:\HomeStead文件夹中以管理员身份启动Git Bash,打开Git窗口,执行命令vagrant up 来启动虚拟机。
vagrant up
1
系统开始启动虚拟机
若是一切正常,Homestead虚拟机将成功启动。
此时,virtualbox中也将出现一个新的虚拟机homestead-7
虚拟机文件也存储在咱们指定的位置F:\virtualBox VMS,而不是存储在默认的C:\Users\xxx\VirtualBox VMs目录。
输入域名http://homestead.test/ ,也能访问,只是因为咱们暂时没有建立项目,系统显示“No input file specified.”
注意:启动homestead虚拟机后,php开发环境就已经在运行了,本地主机无需去启动wamp、xampp等php开发环境。我曾经犯过这样低级的错误,觉得本地主机还要启动PHP开发环境
八、建立一个laravel项目
在windows中进入代码文件夹F:\code,在F:\code文件夹中启动Git Bash,新打开一个Git窗口,执行下面的命令,在code文件夹中建立一个名为blog的laravel项目。(laravel的安装须要有composer的支持,若是你的电脑上没有安装composer,请先行下载安装)
composer create-project --prefer-dist laravel/laravel blog
1
出现下图所示后项目建立成功。
项目建立好后,用vagrant reload命令重启一下虚拟机。
vagrant reload
1
此时,打开域名http://homestead.test/ ,就能够访问咱们新建立的blog项目的首页了~~
九、查看主机和虚拟机项目同步状况
用vagrant up命令启动homestead虚拟机后,使用vagrant ssh 命令能够链接虚拟机
vagrant ssh
1
进入虚拟机后,用pwd命令查看一下当前目录位置,能够看到当前的位置是/home/vagrant ,用ll命令查看一下,会发如今当前目录中有一个code文件夹。
用cd code 命令进入code文件夹
cd code
1
用ll命令查看一下,能够看到里面有一个blog文件夹,这就是咱们在本地主机F:\code里面建立的blog项目同步过来的。
十、数据库链接的问题
homestead虚拟机启动以后,咱们就能够去链接虚拟机的mysql数据库了,用户名为homestead,密码是secret。我用的数据库管理工具是HeidiSQL,打开HeidiSQL以后,新建一个会话,命名为homestead,输入上面的用户名、密码,端口是33060,而后单击“打开”按钮。
会发现,里面已经有咱们在Homestead.yaml文件里配置的两个数据库了
打开F:\code\blog项目中的.env文件,配置数据库选项
说明
Homestead 默认已经在虚拟机中为 MySQL 和 Postgres 数据库作好了配置,更方便的是,这些配置值与 Laravel 的 .env 中默认提供的配置一致。想要经过本地的 Navicat 或 Sequel Pro 链接到 Homestead 上的 MySQL 或 Postgres 数据库,能够经过新建链接来实现,主机 IP 都是 127.0.0.1,对于 MySQL 而言,端口号是 33060,对 Postgres 而言,端口号是 54320,用户名/密码是 homestead/secret。只有从本地链接 Homestead 的数据库时才能使用这些非标准的端口,在 Homestead 虚拟机中仍是应该使用默认的 3306 和 5432 端口进行数据库链接配置。
至此,Homestead开发环境的安装及配置就所有完成了!
经常使用的几个vagrant命令
最后,列出几个经常使用的vagrant命令,方便小伙伴们使用时查阅:
$ vagrant up # 启动虚拟机
$ vagrant halt # 关闭虚拟机
$ vagrant reload # 重启虚拟机
$ vagrant ssh # SSH 至虚拟机
$ exit # 从虚拟机退出
$ vagrant init # 初始化
$ vagrant suspend # 挂起虚拟机
$ vagrant resume # 唤醒虚拟机
$ vagrant status # 查看虚拟机运行状态
$ vagrant destroy # 销毁当前虚拟机
#box管理命令$ vagrant box list # 查看本地box列表$ vagrant box add "box名称" # 添加box到列表$ vagrant box remove "box名称" # 从box列表移除————————————————版权声明:本文为CSDN博主「云上飘过」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处连接及本声明。原文连接:https://blog.csdn.net/xiaomayi721025/article/details/84727405