本文作者:陈进坚
个人博客:https://jian1098.github.io
CSDN博客:https://blog.csdn.net/c_jian
简书:https://www.jianshu.com/u/8ba9ac5706b6
联系方式:jian1098@qq.com
下载安装包
本文所有的程序已经上传到百度云盘,如有失效请联系作者进行更新下载链接
链接:https://pan.baidu.com/s/1DYyD-jpJOmiE-0RQBmDeiw
提取码:wr7j
安装VirtualBox
VirtualBox
是 Oracle
公司的开源虚拟机软件,安装包下载完成之后,双击安装包进行安装,之后按照提示操作一步一步进行安装即可。
安装Vagrant
Vagran
是用来管理虚拟机的工具,支持当前主流的虚拟机系统如 VirtualBox
、VMware
、AWS
等。Vagrant
的主要作用是提供一个可配置、可移植和复用的软件环境。安装包下载完成之后,双击安装包进行安装,之后按照提示操作一步一步进行安装即可。
安装Git
Git
是一款非常流行的代码版本控制工具。安装包下载完成之后,双击安装包进行安装,之后按照提示操作一步一步进行安装即可。
安装 Homestead
说明
Homestead
脚本使用 Ruby 和 Shell 脚本编写而成。原理是对Vagrantfile
文件做定制。将从 ~/Homestead/Homestead.yaml
读取的配置信息,在provision
时,解析为 Vagrant
命令并进行对虚拟机的配置。Homestead
脚本的作用在于,提供了极其简单易用的接口,使我们只需要通过傻瓜化配置,即可完成复杂的任务。
homestead.box
虚拟机盒子是提前打包好的 Vagrant Box 虚拟机盒子,里面预装了 Nginx Web 服务器、PHP 7、MySQL、Postgres、Redis、Memcached、Node
,以及所有你在使用 Laravel
开发时所需要用到的各种软件。为了学习的流畅性,我们接下来将会使用定制版本的虚拟机盒子,你不需要太担心版本的事情。由于国内的网络环境原因,我们特意为大家定制了适用于国情的 Homestead 安装包,该安装包提供了以下内容:
-
Composer 加速
,配置了 Composer 中国全量镜像 支持; - 默认集成
Heroku
工具; - 默认集成
Yarn
,并为Yarn
加了淘宝镜像的加速; - 使用
CNPM
对NPM
进行加速。
安装
1.lc-homestead-6.4.1-2019072300.zip
文件下载完成后解压,可以看到有两个文件
- virtualbox.box(教程定制化过的 Homestead 盒子)
- metadata.json(盒子的导入配置文件)
在解压目录(非中文)中 lc-homestead-6.4.1-2019072300
运行以下命令导入 Box:
vagrant box add metadata.json
2.进入用户根目录
cd C:\Users\你的用户名
使用 Git 下载定制版的 Homestead
git clone https://git.coding.net/summerblue/homestead.git Homestead
使用 Git
检出我们需要的 Homestead
版本
cd ~/Homestead
git checkout v7.8.0
初始化 Homestead
bash init.sh
运行以上命令后,会在 ~/Homestead
目录下生成以下三个文件:
- Homestead.yaml - 主要配置信息文件,我们可以在此文件中配置 Homestead 的站点和数据库等信息;
- after.sh - 每一次 Homestead 盒子重置后(provision)会调用的 shell 脚本文件;
- aliases - 每一次 Homestead 盒子重置后(provision),会被替换至虚拟机的
~/.bash_aliases
文件中,aliases
里可以放一些快捷命令的定义。
3.生成SSH Key
,如果你之前已经生成过,可以直接跳过这一步;
检测是否已经生成过SSH Key
ls -al ~/.ssh
如果存在 id_rsa
和 id_rsa.pub
的话,请跳过以下生成 SSH Key
的步骤
生成SSH Key
,替换掉下面的邮箱
ssh-keygen -t rsa -C "your_email@example.com"
接下来一路按回车选择默认即可。
4.配置站点
创建Code
目录,默认情况下将会在该文件夹下放置我们所有的 Laravel
项目,Homestead 会把该文件夹下的项目自动映射到虚拟机的 /home/vagrant/Code
文件夹上。当然,我们也可以通过修改C:\Users\用户名\Homestead\Homestead.yaml
文件中folders
栏目将本地目录与虚拟机目录绑定,一旦本地文件有变化,虚拟机的文件也会自动同步修改。
主机里直接访问虚拟机站点,必须通过绑定 hosts
来实现。接下来我们利用 hosts
文件绑定 homestead.test
到虚拟机 IP 192.168.10.10
上。hosts
文件的完整路径为 C:\Windows\System32\Drivers\etc\hosts
,在 hosts
文件的最后面加入以下一行
192.168.10.10 homestead.test
启动Homestead
cd C:\Users\用户名\Homestead && vagrant up
登录Homestead
vagrant ssh
登录成功后,你能看到类似于如下图的界面,现在我们在该终端界面中输入的所有命令都将运行在 Homestead 虚拟机上
退出和关闭Homestead
退出虚拟机
exit
关闭虚拟机
vagrant halt
通过工具连接MySql
可以使用Navicat
等可视化工具连接mysql
,mysql
的默认配置如下
IP:192.168.10.10
端口:3306
用户名:homestead
密码:secret
通过工具连接命令行
上面说过可以通过SSH Key
来连接命令行,由于系统是ubuntu
,所以也可以通过xshell
等工具连接命令行。默认配置如下
IP:192.168.10.10
用户名:vagrant
密码:vagrant
修改Composer
全量镜像
按照Laravel China 社区文章《Laravel China镜像完成历史使命,将于两个月后停用》,我们需要修改Composer
全量镜像为阿里云 Composer 全量镜像,否则Composer
会报错。
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
安装Laravel
通过 Composer 安装 Laravel
安装器:
composer global require "laravel/installer"
创建 Laravel
应用
创建code
目录,这里创建一个名为blog
的应用
mkdir code
cd code
laravel new blog
在windows
环境下创建应用,使用5.7版本
composer create-project laravel/laravel blog "5.7.*"
添加站点
在Windows
环境的C:\Users\用户名\Homestead\Homestead.yaml
文件中sites
栏目添加
sites:
- map: homestead.test
to: /home/vagrant/code/blog/public
然后在 hosts
文件的最后面加入以下一行
192.168.10.10 homestead.test
运行serve脚本
serve homestead.test /home/vagrant/code/blog
退出Homestead
然后重启虚拟机让上面的配置在homestead
中生效
exit
vagrant reload --provision
打开浏览器访问http://homestead.test/
即可
站点的配置文件会自动创建在/etc/nginx/sites-available/
目录
PHP管理
-
切换版本
进入目录
/etc/php
可以看到php
的各个版本vagrant@homestead:/etc/php$ ls 5.6 7.0 7.1 7.2 7.3
要切换版本只需在在
Windows
环境的C:\Users\用户名\Homestead\Homestead.yaml
文件中sites
栏目指定版本然后重启虚拟机即可,所有站点只能指定相同的版本,否则会报错- map: wd.com to: /home/vagrant/code/qianlong_sys php: "7.1" - map: admin.kd.do to: /home/vagrant/code/yii2_admin/backend/web php: "7.1"
-
重启
命令根据版本做修改
/etc/init.d/php-fpm5.6 restart
-
Nginx管理
/etc/init.d/nginx restart