学习Laravel(第1部分:设置Laravel Homestead)

您好,自从我上次在Medium发表文章以来已经有很长时间了。 几周前,我搬到一家新公司,在这里我们使用Laravel开发Web应用程序。 结果当然是我需要熟悉环境。 这个(希望是)系列的目的仅仅是,让我熟悉环境,在学习过程中学习一两件事,并希望作为一名开发人员会更好一些。

好的,让我们开始吧。

由于我是在Windows机器上学习Laravel的,因此我有几种选择可让我的机器准备好并安装Laravel。 我可以在我的机器上将PHP与Composer一起安装,然后安装Laravel CLI并创建一个新项目(老实说,我不知道这种方法有什么问题)。 但是环顾四周,人们准备机器的主要方法有两种:

  1. 使用Laravel Homestead(使用Vagrant和Virtual Box)
  2. 使用* AMPP堆栈(例如XAMPP,WAMPP,LAMPP等)

在阅读了Bruno Skvorc在Site Point上有关启动PHP项目的正确方法的文章后,我被卖给了使用Laravel Homestead Improvement(类似于Laravel Homestead,但具有附加功能,因此称为“改进”)作为我的学习之路。 顺便说一句,我正在关注Site Points教程,可以在这里找到。

Laravel Homestead页面的警告语: 如果使用Windows,则可能需要启用硬件虚拟化(VT-x)。 通常可以通过您的BIOS启用它。 如果在UEFI系统上使用Hyper-V,则可能还需要禁用Hyper-V才能访问VT-x。

实际上,不需要做太多事情。 您需要先安装几件东西。

  • Virtualbox,因为我们需要用于托管VM的工具
  • 流浪汉,因为我们将使用Laravel Homestead,这是一个流浪汉盒子。
  • Git,我个人使用Cygwin,它在git中还包含更多Linux命令。

那里有很多文章介绍了如何安装这些要求,因此在此不再赘述。

我个人使用Hyper作为终端,您可以使用Windows版Git随附的git bash,它应该还不错。

对于我们要进行的每个项目,我们都需要克隆Laravel Homestead改良版仓库,并将文件夹重命名为我们的项目名称。 简而言之,您只需使用以下命令克隆存储库即可。

git clone https://github.com/swader/homestead_improved learn_laravel 

当然,将learn_laravel更改为您的项目名称。 克隆完成后,转到项目文件夹,然后创建一个公用文件夹。

  cd Learn_laravel 
mkdir -p项目/公共

如果您想知道我是第一次看到-p指令,它代表父母。 也就是说,如果父文件夹不存在,它将同时创建父文件夹Project和其子文件夹Public

为什么我们需要创建公用文件夹? 这是为了简化使用VM的工作流程。 使用公用文件夹,您可以在主机操作系统中编辑公用文件夹,更改将反映在您的VM中。 整洁吧?

但是在使用公用文件夹之前,我们需要将主机OS中的文件夹链接到VM内的文件夹。 不用担心,因为Laravel Homestead Improvement有一个脚本可以帮助我们完成工作。 只需在bash(或类似bash)的终端中执行以下行:

  bin / folderfix.sh 

而且,of! 它将是“公共”文件夹,因此您可以像我之前所说的那样使用它。 如果要链接另一个文件夹,可以稍后从homestead.yaml手动进行链接。 Laravel文档也介绍了配置共享文件夹的内容。 接下来,我们需要设置我们的项目站点

那么我们将在这部分中做什么呢?

我们想开发一个网站或Web应用程序对吗? 以及我们通常如何访问这些地址? 通过访问其地址。 例如,如果我们要使用Gmail,我们将转到mail.google.com 。 因此,在此步骤中,我们将使其能够访问我们的网站或应用,就像访问Gmail一样。

为此,我们需要配置两件事:

  • 主机文件:因此我们的浏览器知道如何重定向地址
  • homestead.yaml :告诉我们的应用程序您网站的确切文件夹是

在继续之前,请确保您的计算机中没有运行VPN或DNSCrypt,因为这会影响浏览器解释站点的方式。 因为在编写此博客时,我会因为使用DNSCrypt而遇到令人头痛的问题。

配置主机文件

当我学习Laravel时,我才发现这个文件有多酷。 试想一下,您可以将任何站点重定向到任何IP地址。 我敢打赌,该文件过去在阻止我的学校计算机访问Friendster方面发挥了重要作用。 在Windows中,您可以在以下文件夹中找到此文件:

  C:\ Windows \ System32 \ drivers \ etc \ hosts.txt 

要打开和编辑文件,您需要以管理员身份打开记事本,然后从记事本内部打开文件。 除此之外,我还没有找到其他方法。 因此,当您打开文件时,将会看到一堆注释以及一对IP地址和主机名。 简而言之,这将是您所看到的:

现在,我们需要将所需的主机名添加到主机文件中。 在这种情况下,我将在文件底部添加192.168.10.10 learnlaravel.app 。 通过添加此文件,我们告诉计算机如果访问learninglaravel.app,则转到192.168.10.10。

配置homestead.yaml文件

homestead.yaml文件包含Laravel Homestead配置。 对于初学者,我们只需要配置其表示sites:的部分sites: 。 现在我们需要做的就是告诉这个文件,当我们打开我们的站点时,我们想转到/home/vagrant/Code/Project/public (在我的情况下为learnlaravel.app )。 为此,我们需要在homestead.yaml添加以下代码:

 网站: 
-地图:learnlaravel.app
到:/ home / vagrant / Code / Project / public

毕竟,我们现在可以启动“ Vagrant”盒子了。

开箱!

最后,我们将使用无用命令,启动Laravel Homestead,我们需要做的就是调用

 无所事事 

在我们项目的根文件夹中。 第一次运行它会花费很多时间,因为它将下载运行Homestead所需的框。 但是,当您第二次执行此操作时,由于不需要下载该工具箱,因此应该花更短的时间。 完成后,您可以使用以下命令访问该框

 流浪的SSH 

连接后,您可以像使用普通的ubuntu终端一样使用它。 但是已经为您准备了一些功能。

Laravel Homestead使用homestead.yaml进行配置 (或多或少使用另一种方式首次设置系统) 流浪者框。 因此,如果您需要在使用vagrant up创建了无业游民的盒子之后更改homestead.yaml ,则需要使用vagrant reload --provision重新配置该盒子。 否则更改将不会反映在您的VM上。

你好世界部分?

在完成所有这些工作之后,我们看不到结果了吗? 现在让我们添加一些我们可以肯定看到的东西。 在您的主机(而不是无聊的盒子)中,转到Project/public文件夹并创建一个名为index.php的文件。 并写在里面:

   

learnPHP


<?php echo'

Hello World

'; ?>


现在,当您转到learnlaravel.app您将看到以下内容

大声笑,不幸的是,我不知道出了什么问题,仍然使用localhost:8000来访问我的网站,它的工作方式就像魅力。

因此,这个问题结束了本系列的第一部分。 希望我能很快找到修复方法🙂

祝贺您建立了第一个Laravel Homestead环境! 🙂

我知道这不如* AMPP解决方案那么简单,后者仅需要您单击安装步骤。 但是,这样做的感觉更加骇人,对吧? 除了尝试个人设置Laravel Homestead之外,我在撰写本文时还学到了很多有关VM和网络的知识。 希望这会对其他人有所帮助,如果您有任何要问的问题,请在评论中打扰我,我们将很乐意为您提供帮助。