Homestead 安装lumen / laravel 过程记录
William Ning 2019.1.9 周三 春风路3007号
前言:
整个过程参考 https://laravel-china.org/docs/laravel/5.6/homestead/1355
1.环境
OS: windows 10 64位 企业版
Vagrant : 2.2.2 //最新版本
Virtualbox: 5.2.22 //最新版本
2.建议
将vagrant 和 virtualbox升级到最新(稳定)版, 避免接下来出现的各种问题.
3.在开发机(个人电脑)上,干净的地方,新建一个文件夹,如:
D:\vagarant-lumen
4.将box放到D:\vagarant-lumen 目录下
Note:
这里的homestead-virtualbox-3.0.0.box是Nick提供的,不过需要更改一个文件.
建议使用homestead-virtualbox-6.3.0.box 刚从社区下载,版本新.
同时也可以https://www.vagrantup.com/ 寻找box.
具体操作,这里暂不详述. 应涉及到源码编译
或者[听说国外常这么干]
直接打开连接下载: https://app.vagrantup.com/laravel/boxes/homestead/versions/6.3.0/providers/virtualbox.box
上面的6.3.0是版本号,可以修改为指定的版本号.下载完之后,可能需要进行手动更名.
名字要和自己后续使用的名字保持一致,此处更名为: homestead-virtualbox-6.3.0.box
5.在D:\vagarant-lumen中新建metadata.json文件
metadata.json内容如下:
{
"name": "laravel/homestead",
"versions":
[
{
"version": "3.0.0",
"providers": [
{
"name": "virtualbox",
"url": "homestead-virtualbox-3.0.0.box"
}
]
}
]
}
Note: version,url对应的值,要跟真实情况保持一致.
6. 安装 Homestead Vagrant Box
进入到D:\vagarant-lumen,打开cmd或者gitbash, 输入:
vagrant box add metadata.json
Note:
vagrant box add laravel/homestead 是用从线上[vagrant开源社区]下载最新版box. -------------TBD
简单补充:
vagrant init <box-name> //生成 Vagrantfile
vagrant up //根据 Vagrantfile的配置 生成镜像, 如果本地没有对应的 <box-name> 对应的镜像,
则会去官网下载
vagrant box add .... //指定 <box-name> 对应的镜像. 下载镜像的方式很灵活
添加box到本地仓库:
https://blog.csdn.net/zsl10/article/details/51997367
7.查看是否添加成功
vagrant box list //因为vagrant 是全局安装,所以此命令不用进入到指定目录下,但是建议,统一进入到指定目录下,必然是没有问题的.又不是比赛.有时费时省力,未尝不可,而且未必以后一直是费时的[个人看法]
8.安装 Homestead
①通过克隆代码来安装 Homestead,可以使用http方式或者ssh方式
这里使用的是ssh方式,因为http方式一直有问题,原因暂时不清,也没有解决.
git clone [email protected]:laravel/homestead.git
②开始进入homestead目录下,
因为 Homestead 的 master 分支并不是稳定分支,应该使用打过标签的稳定版本。
可以在GitHub发行页[https://github.com/laravel/homestead/releases]上找到最新的稳定版本,这里推荐使用v7.19.2
③git checkout v7.19.2
④$ bash init.sh
Homestead initialized!
⑤此时homestead目录下,会生成几个文件,只需要关注Homestead.yaml即可
打开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.app
to: /home/vagrant/Code/Laravel/public
databases:
- homestead
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar
# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp
详情参见: https://laravel-china.org/docs/laravel/5.6/homestead/1355
⑥修改windows host 文件 C:/Windows/System32/Drivers/etc/hosts
192.168.10.10 homestead.app
Note:
如果修改不了,请把hosts文件拖到桌面,修改保存,再拖回原来的目录下.
⑦在homestead目录下,执行
vagrant up
Note :
homestead虚拟机的配置都在 :D:\vagarant-lumen\homestead\scripts\homestead.rb文件中,详细参见文件
9.看Homestead.yaml 我们发现只需将Laravel或者lumen的代码放到homestead同级目录的code文件夹即可
Note:
在windows下,并不是这样的,因为
folders:
- map: ~/code
to: /home/vagrant/code
~/code 表示的是 C:\Users\william_ning\code
所以需要在C:\Users\william_ning目录下新建文件夹code.
或者
将- map: ~/code修改为/d/vagarant-lumen/homestead/code ---------------TBD
10.进入到code目录下[这里是C:\Users\william_ning\code],
新建public目录,并在内新建index.php
index.php内容如下:
<?php
phpinfo();
11.测试环境是否ok
浏览器中输入:
localhost:8000
如下:
表示环境已经成功.
填坑:
在之前遇到各种问题之后,将vagrant和virtualbox升级到最新版,会避免大多数问题,但是可能还是会有问题.
备注:
ssh 连接虚拟机
vagrant ssh //连接进入虚拟机[Ubuntu]
user: vagrant password: vagrant
user: root password:vagrant
可直接通过sudo su命令进行身份切换 //从普通用户切换到root用户
ctrl+d //从root用户切换到普通用户
①vagrant up之后提示信息: ” can't read /etc/php/7.2/fpm/pool.d/www.conf: No such file or directory
The SSH command responded with a non-zero exit status.”
解决思路参考:
a.vagrant reload //重启虚拟机,查看是否仍有上述问题.
b.参考 https://github.com/hashicorp/vagrant/issues/1659
②有时目录挂载不成功
解决思路:
正确的挂载路径:
~code =====> /home/vagrant/code // ~ 即C:\Users\william_ning\
D:\vagarant-lumen\homestead =====> /vagrant
进入到虚拟机中,查看 上面两者是否挂载正确,同时在C:\Users\william_ning\code下新建文件夹public
查看是/home/vagrant/code中是否立刻有public目录生成,可以成为热挂载[即 分录即时分享]
如果有问题,重启虚拟机,查看结果.
③输入localhost:8000
Web服务器无响应,需要进入虚拟机中启动或者重启nginx
命令:
vagrant ssh
sudo service nginx start / restart
④浏览器中输入:
192.168.10.10
或者
homestead.test
均没有响应,原因是公司代理的问题,导致不能使用虚拟主机设置.对于开发不是必须.所以可以选择跳过
但是首先,要确定能访问到虚拟机:
保证能访问到,之后
解决办法:
设置代理
a.添加192.168.*.* 和homestead.test
Firefox
代理设置如下:
访问结果如下:
Chrome[使用代理插件swichyOmega]
代理设置如下:
keyon
vpn
访问结果如下:
IE
代理设置如下:
访问结果如下:
Homestead.test 有些问题,应该跟ie浏览器本身的设置和实现有关,具体不再研究.
+-------------------------------------------------+---------------------------------------------------+------------------------------------------------+
进入code目录下,clone code
git clone [email protected]:laravel/lumen.git
12.运行lume / laravel framework //TBD
①将lumen/laravel framework的code放到code目录下.
git clone
②
+---------------------------------------------------------------额外补充-----------------------------------------------------------------------------+
Centos nginx重启
重启Nginx
service nginx restart
/etc/init.d/nginx stop
/etc/init.d/nginx start
Ubuntu Nginx
$sudo service nginx start
$sudo service nginx stop
win7
启动
解压至c:\nginx,运行nginx.exe(即nginx -c conf\nginx.conf),默认使用80端口,日志见文件夹C:\nginx\logs
常用配置
C:\nginx\conf\nginx.conf,使用自己定义的conf文件如my.conf,命令为nginx -c conf\my.conf
方便有用的linux命令:
cd .. //返回上级目录
cd – //返回上一次目录
资源:
寻找box
https://app.vagrantup.com/boxes/search?utf8=%E2%9C%93&sort=downloads&provider=&q=homestead
直接下载box
https://app.vagrantup.com/laravel/boxes/homestead/versions/6.3.0/providers/virtualbox.box
可以将版本号换一下,如换
安装教程:
https://www.cnblogs.com/zero-zf/p/6031965.html
https://my.oschina.net/cxgphper/blog/1940644
总参考:
https://blog.csdn.net/min903245074/article/details/77954857
https://pan.baidu.com/s/1eRLsJ42#list/path=%2F
https://laravel-china.org/docs/laravel/5.6/homestead/1355
https://github.com/laravel/homestead
https://laravel-china.org/docs/lumen/5.6
https://laravel-china.org/docs/lumen/5.6/install/1924
https://github.com/search?q=lumen
https://github.com/laravel/lumen
https://github.com/ningxiaofa/homestead
参考资源:
https://blog.csdn.net/min903245074/article/details/77954857 //Homestead安装大法和总结一些坑
https://laravel-china.org/articles/7369/im-climbing-out-of-the-homestead-pit-for-the-development-of-the-environment //开发环境部署之 Homestead 大坑,我是这样爬出来的
https://laravel-china.org/topics/4796/ssh-auth-method-private-key-solution-summary-when-homestead-startshttp:// //Homestead 安装问题汇总
https://laravel-china.org/articles/4668/why-do-you-have-to-use-homestead-to-develop-laravel-applications //为什么必须使用 Homestead 来开发 Laravel 应用?
https://blog.csdn.net/min903245074/article/details/77954857 //Homestead安装大法和总结一些坑