• 我们中的有些人,注定要在日常生活的点滴中去寻找生命的意义。---- 《生活大爆炸》|

配置Homestead中homestead.yaml的内容

PHP admin 3年前 (2018-04-05) 1098次浏览 已收录 1个评论

##【转】 简书 — CodingLady —   配置Homestead中homestead.yaml的内容

之前配置Homestead搞了一天多才弄明白这个文件字段要怎么配置,特意把里面字段都写了详细的注释,这里尤其要注意folders和sites的配置,直接关系到网站能不能运行。

homestead.yaml中主要字段及其意义


---
ip: "192.168.10.10"  #虚拟机的地址
memory: 2048
cpus: 1
provider: virtualbox   #虚拟机平台,用virtualbox装的一定要确认这里是virtualbox
 
authorize: ~/.ssh/id_rsa.pub     #ssh的公钥

keys:
    - ~/.ssh/id_rsa   #ssh的私钥,配置了ssh以后,登录虚拟机可以直接在终端输入homestead ssh进入

folders:  #设置文件夹机映射关系
    - map: /Users/codingLady/Code   #需要映射到虚拟机的本地机器的文件夹
      to: /home/vagrant/Code        #需要映射到虚拟机中哪个的文件夹
    
sites:  #设置域名和网站的映射关系
    - map: blogA.app                        #网站域名
      to: /home/vagrant/Code/blogA/public   #Laravel项目对应index.php的位置,以虚拟机的路径表示
      
    - map: blogB.app                        #网站域名
      to: /home/vagrant/Code/blogB/public   #Laravel项目对应index.php的位置,以虚拟机的路径表示

这里需要特别说明两个字段,一个是folders,另一个是sites。

folders

folders是要把本地机器某个文件夹映射到虚拟机上,也就是说登录虚拟机以后,查看/home/vagrant/Code文件夹的内容,是和Users/codingLady/Code的内容是一样的。这里需要注意两个地方:
(1)to字段里虚拟机的文件夹一定是已经在虚拟机上存在,如果不存在的话,要先建立一个,要不映射关系是建立不起来的。在虚拟机上建立文件夹的方法是:

#执行以下命令前,请先确认终端的当前目录是homestead的安装目录
homestead up       #启动虚拟机
homestead ssh      #登录虚拟机,这个时候虚拟机上的路径是/home/vagrant/
#如果folders的to的路径是/home/vagrant/Code,那么就在/home/vagrant/建立Code文件夹
mkdir  Code        #建立/home/vagrant/Code文件夹
exit               #退出虚拟机的登录

(2)一定要检查folders的映射关系是否已经建立,检查的方法如下:

#登录虚拟机,步骤同前
cd Code  #进入的是folders-to里面你配置的文件夹,这里是以Code文件夹为例了
ll       #查看folders-to配置的文件夹下的内容,如果映射成功的话,和folder-map里的内容是一样的这样

sites

sites的作用是建立域名和网站的路径之间的映射关系,其中map和to的意义见前面.yaml文件的注释,要注意to里填的是从虚拟机访问index.php的路径,并且一定要用ll命令确认这个文件夹是存在并且可以访问的。所以,一般而言,sites-to里配置的是folders-to下的子路径。

配置好homestead.yaml路径以后,记得要执行下面的命令,让修改生效

homestead up --provision  #启动虚拟机,让provisioning立即生效

如果不行的话,可以先halt,再启动

homestead halt      #关闭虚拟机
homestead up --provision    #启动虚拟机,让provisioning立即生效

遇到的问题


问题一:folders正确配置了map和to,但是登录虚拟机以后,ll查看to文件夹,却看不到内容

解决方案:
(1) 检查map的路径是否是本地机器上存在的
(2) 检查to路径是否在虚拟机上存在
(3) 升级virtualBox和vagrant到最新版本(之前就卡在这里,看到有人说更新这俩版本就好了,想起来virtualBox确实也装了N久了,然后一升级还真全好了……)
(4) 是否执行了homestead up –provision,让配置立即生效

问题二:在浏览器中输入sites里map的域名,但是浏览器中却显示No input files specified.

解决方案:
(1) 检查to里面的路径有没有写错
(2) 登录虚拟机,检查to配置的文件夹是否可以访问(这里其实看的就是folders里的映射关系是否建立了,之前folders的映射关系没建立好,所以输入域名后,找不到to配置的文件夹,就出现了错误)
(3) 登录虚拟机,检查to配置的文件夹中是否存在index.php
(4) 是否执行了homestead up –provision,让配置立即生效

祝各位玩Homestead愉快。

参考文档:
1.https://laravel.io/forum/06-04-2014-no-input-file-specified-using-homestead
2.https://laravel.io/forum/05-16-2014-homestead-yaml-folder-mapping

作者:CodingLady
链接:https://www.jianshu.com/p/1ff4093ff00e
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:配置Homestead中homestead.yaml的内容
喜欢 (1)

您必须 登录 才能发表评论!

(1)个小伙伴在吐槽
  1. 来看下,学习了
    duantian2018-04-08 16:44