Laravel 致力于让整个 PHP 开发体验变的更愉快,包括你的本地开发环境。 Vagrant 提供了一种简单、优雅的方式来管理和配置虚拟主机。
在你启动 Homestead 环境之前,你必须安装 VirtualBox 6.x,VMWare,Parallels 或 Hyper-V 以及 Vagrant。以上所有软件均针对不同的操作系统提供了易于使用的可视化安装包。
准备工作
安装 Vagrant 和 VirtualBox
一步步安装就好了,借着装git
安装 Git,window客户端直接安装
下载 Laravel Homestead box
https://app.vagrantup.com/boxes/search
下载之后可以改个名字 比如改成 homestead1
下载好之后就需要把 Homestead box 添加进来
vagrant box add laravel/homestead F:/MyDownloads/Download/homestead-7.2.1.box
homestead后面的是你下载下来的本地box位置
用命令查看到有 laravel/homestead 即添加成功
vagrant box list
拼下载 URL:
'https://app.vagrantup.com/laravel/boxes/homestead/versions/7.2.1' + '/providers/' + '供应商名字/' + '.box'
公式:下载链接 = 产品版本链接 + 供应商英文意思 + 要下载的供应商名称(如virtualbox)+’.box’
如上选择的是版本是 v7.2.1,生成的下载链接为 :
https://app.vagrantup.com/laravel/boxes/homestead/versions/7.2.1/providers/virtualbox.box
下载之后可以把名改了好区分:homestead-7.2.1,默认名字是:virtualbox.box
安装
1、添加 box
vagrant box add laravel/homestead F:/MyDownloads/Download/homestead-7.2.1.box
用命令查看到有 laravel/homestead 即添加成功
vagrant box list
列表中显示的laravel/homestead的版本号为0,我们要把它改成正确的版本号(7.2.1),可以打开用户目录下的~.vagrant.d\boxes\laravel-VAGRANTSLASH-homestead文件夹,找到以下路径:
~ .vagrant.d\boxes\laravel-VAGRANTSLASH-homestead
将文件夹中名为0的文件夹改名为我们下载的Homestead的版本号,即7.2.1。
然后在该文件夹下新建一个叫metadata_url的文件 (注意不要有任何文件名后缀,如果你的系统设置了自动隐藏后缀名,请将隐藏去掉,确认文件无任何后缀),文件添加一下内容
https://app.vagrantup.com/laravel/boxes/homestead
再次vagrant box list查看版本变了
2、克隆Homestead
在文件下执行命令,如D:/vagrant
git clone https://github.com/laravel/homestead.git Homestead
接着在已经克隆下来的文件夹内,会发现bash init.sh,init.bat两个文件
如果是在win下,又安装了git bash,则运行bash init.sh,init.bat均可。
如果是在linux下,则运行bash init.sh
在文件夹Homestead下执行
cd Homestead/
bash init.bat #win
或
bash init.sh #win、linux
执行完之后会产生文件:Homestead.yaml
3、配置Homestead.yaml
ip: "192.168.10.10" #虚拟机的ip,不用改动
memory: 2048 #虚拟机内存大小
cpus: 1 #虚拟机cpu数量
provider: virtualbox #提供虚拟机类型,用virtualbox装的一定要确认这里是virtualbox
authorize: ~/.ssh/id_rsa.pub #ssh的公钥,确认用户目录下有没有公钥
keys:
- ~/.ssh/id_rsa #ssh的私钥
folders: #设置文件夹映射关系
- map: D:/homestead #需要映射到的本地机器的文件夹,自己的目录 **刚开始默认的也可以**
to: /vagrant/code #需要映射到虚拟机中哪个的文件夹,虚拟机上的目录,没有就新建code
sites:
- map: homestead.test #站点虚拟域名
to: /vagrant/code #站点目录 下载好代码后 需要指向虚拟机上的盘符
databases:
- homestead #数据库
4、启动Homestead
vagrant up
或
vagrant up --provision #启动虚拟机,让provisioning立即生效
遇到问题:
Stderr: VBoxManage.exe: error: Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole
管理员身份运行cmd关闭Microsoft-Hyper-V即可
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
#提示重启选择y
如果需要开启Hyper-V虚拟化管理员身份运行cmd
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V
5、登录Homestead
vagrant ssh
出现以下界面说明安装成功
其他操作
composer
输入composer会看到如下界面
说明虚拟机以内置好了composer,没有的话需要自己安装
安装之前配置下composer,不然安装起来会很慢
使用 Composer 镜像加速有两种选项:
1、全局配置,这样所有项目都能惠及(推荐);
2、单独项目配置;
1、全局配置(推荐)
composer config -g repo.packagist composer https://packagist.laravel-china.org
2、单独使用
如果仅限当前工程使用镜像,去掉 -g 即可,如下:
$ composer config repo.packagist composer https://packagist.laravel-china.org
修改镜像
全局配置:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
本项目配置:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
上面选择执行后再
composer install
安装laravel
1、首先,通过 Composer 安装 Laravel 安装器
cd /vagrant/code
composer global require "laravel/installer"
如果之前安装的是旧版的安装器,可以通过命令更新:
composer global update
2、新建应用的两种方法
2.1 通过简单的 laravel new 命令即可在当前目录下创建一个新的 Laravel 应用
如新建名称为 laravel 的项目,此种方法较慢。
laravel new laravel
2.2 通过 Composer Create-Project 安装 Laravel 应用(推荐)
可以指定要安装的版本:5.6
composer create-project laravel/laravel laravel5.6 --prefer-dist "5.6.*"
如果不是想要的版本直接更改就好
配置站点
需编辑Homestead.yaml文件的字段sites和本机hosts文件
编辑配置文件 Homestead.yaml,找到下面的地方,配置站点
sites:
- map: homestead.test #虚拟域名
to: /vagrant/code/laravel5.6/public #指向虚拟机的项目入口文件路径
1
2
3
配置本地hosts文件
192.168.10.10 homestead.test
1
重启服务
vagrant reload --provision
1
在浏览器访问域名:homestead.test,出现如下界面即配置成功
新增站点
修改Homestead.yaml文件
sites:
- map: homestead.test #虚拟域名
to: /vagrant/code/laravel5.6/public #指向虚拟机的项目入口文件路径
- map: test.com
to: /home/vagrant/code/test/public
1
2
3
4
5
修改本机hosts文件
192.168.10.10 homestead.test
192.168.10.10 test.com
每次修改Homestead.yaml之后需执行命令才能生效
vagrant reload --provision
MySQL连接
用本地连接数据库
ip:192.168.10.10
端口:3306
用户名:homestead
密码:secret
切换web服务器
自由切换Apache和Nginx,在Homestead 虚拟机执行命令:
flip
laravel的一些操作
控制台创建Controllers,在项目根目录执行命令:
php artisan make:controller Admin/IndexController
控制台创建Model,在项目根目录执行命令:
php artisan make:model Models/Article
每次修改文件composer.json需要在网站根目录执行以下命令:
composer dump-autoload
artisan命令参考:
https://learnku.com/articles/17014
启动服务器环境一般在 Homestead 目录下
C:\Users\admin\Homestead
开启虚拟机命令
vagrant up #启动
vagrant ssh # 登录Homestead
vagrant halt #关闭虚拟机
vagrant status #虚拟机状态
vagrant reload #重启
exit # 重启之前 输入 exit 才能输入 vagrant 命令
常见问题composer 镜像源问题 composer php版本问题
Homestead.yaml文件 的配置问题
vagrant 和 VirtualBox 基本不会有问题 直接装好就好了 后续基本不动它 。主要操作在Homestead目录