Laravel 致力于让整个 PHP 开发体验变的更愉快, 包括你的本地开发环境。 Vagrant 提供了一种简单、优雅的方式来管理和配置虚拟主机。
Laravel Homestead 是一个官方预封装的 Vagrant box ,它为你提供了一个完美的开发环境,你不需要在本地机器安装 PHP、 web 服务器和其他的服务器软件。你再也不用担心会弄乱你的操作系统了! Vagrant boxes 是一次性的。 如果出现问题, 你可以在几分钟内销毁并重新创建 box !
Homestead 可以运行在任何 Windows、 Mac、 或 Linux 系统, 它包括了 Nginx web 服务器, PHP 7.2、 PHP 7.1、 PHP 7.0、 PHP 5.6、 MySQL、PostgreSQL、Redis、 Memcached、 Node 以及你开发 Laravel 所需要的东西。
https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v
// 官方文档
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
// 如果运行命令报错, 查看是否是管理员身份打开的PowerShell
安装完成后Windows会重新启动
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
有关DISM的详细信息,请参阅DISM技术参考。
https://www.vagrantup.com/downloads.html
选择Windows对应的版本
vagrant box add laravel/homestead
下载homestead需要花费一点时间
如果命令运行失败,请检查是否为最新的Vagrant
从git上clone Homestead
git clone https://github.com/laravel/homestead.git ~/Homestead
master 分支可能不稳定,可以通过查看Realease Page切换分支
cd Homestead
git checkout v7.18.0
进入 Homestead 文件夹下运行init.bat,创建配置文件Homestead.yaml
init.bat
也可以直接双击init.bat运行
Homestead.ymal配置及详解
---
ip: "192.168.10.10" # 虚拟机的地址
memory: 2048 # 分配内存
cpus: 1 # 分配CPU
provider: hyperv # 使用的虚拟机, 我们这里配置为hyperv
authorize: ~/.ssh/id_rsa.pub # ssh的公钥
keys:
- ~/.ssh/id_rsa # ssh的私钥,配置了ssh以后,登录虚拟机可以直接在终端输入homestead ssh进入
folders: #设置文件夹机映射关系
- map: D:/laravel # 需要映射到虚拟机的本地机器的文件夹
to: /home/vagrant/code # 需要映射到虚拟机中哪个的文件夹
sites: #设置域名和网站的映射关系
- map: homestead.test # 网站域名
to: /home/vagrant/code/blog/public # Laravel项目对应index.php的位置,以虚拟机的路径表示
必须将Nginx站点的“域”添加到计算机上的hosts文件中。该hosts文件会将你的Homestead站点的请求重定向到您的Homestead虚拟机
hosts文件位置 : C:\Windows\System32\drivers\etc\hosts 将下面内容复制进去即可
192.168.10.10 homestead.test
vagrant up
vagrant会根据Homestead.yaml中的配置创建好对应的文件夹
p.s. vagrant up 时运行到smb相关配置需要输入用户名密码,输入Windows的用户名密码即可
运行如下命令进入虚拟机
vagrant ssh
p.s. Vagrant 默认用户名密码为: vagrant/vagrant
进入前面配置好的文件夹(/home/vagrant/code)运行如下命令创建Laravel项目
composer create-project --prefer-dist laravel/laravel blog
启动之后,就可以在浏览器中通过 http://homestead.test 访问 Laravel 应用了
========================================================
如果出现No input file specified,去/var/log/ngnix/project_name_error.log 中查看错误出在那里,一般情况是路径错误
修改配置文件 /etc/nginx/sites-enable/homestead.test
sudo vim homestead.test
修改之后记得使用命令重启Nginx服务
sudo service nginx restart
只需要在新安装的 Laravel 应用下运行
php artisan make:auth
和 php artisan migrate
,这两个命令就会生成用户登录注册所需要的所有东西,然后在浏览器中访问 http://homestead.test/register 即可。
:)