homestead [vagrant-laravel/lumen]

版权声明: https://blog.csdn.net/william_n/article/details/85341691

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 – //返回上一次目录

 

资源:

https://www.vagrantup.com/

寻找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/articles/7369/im-climbing-out-of-the-homestead-pit-for-the-development-of-the-environment

https://laravel-china.org/topics/4796/ssh-auth-method-private-key-solution-summary-when-homestead-startshttp://

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/laravel

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安装大法和总结一些坑

猜你喜欢

转载自blog.csdn.net/william_n/article/details/85341691