搜索
首页后端开发php教程搬到Laravel Homestead的6个理由

Laravel Homestead:便捷的本地开发环境

想快速上手Homestead?请查看快速提示。想了解其详情,请继续阅读。

简单来说,Laravel Homestead 是:

一个官方预打包的Vagrant “box”,它为你提供了一个绝佳的开发环境,无需在本地机器上安装PHP、Web服务器及任何其他服务器软件。

换句话说,它自动完成了我们在之前的文章中(例如这些文章)手动通过Vagrant和PuPHPet完成的操作。

那么,它与普通的Vaprobash/Vagrant/PuPHPet设置有何不同呢?让我们来看看。

关键要点

  • Laravel Homestead是一个预打包的Vagrant box,它提供了一个强大的开发环境,无需手动安装PHP、Web服务器和其他服务器软件。
  • Homestead由Laravel的创建者Taylor Otwell官方开发,以其高质量、可靠性和简易性而闻名,是PHP开发人员的首选。
  • Homestead的设置简单快捷,开发人员可以很快开始他们的项目。它还默认打开重要的端口,简化了从主机管理和维护虚拟机上的数据库和其他已安装软件的过程。
  • Homestead的官方地位确保了一个庞大的社区提供帮助和故障排除。它还使添加新站点或虚拟主机变得容易,允许多个项目在一个box中运行。但是,它确实缺少一些功能,例如全局composer安装、默认虚拟主机中的默认Laravel以及HHVM支持。

1. 它能工作

与其他流行的简化Vagrantfile设置的解决方案不同,Homestead很少启动失败,如果失败,也能在几分钟内修复。如果你处理过GUI Vagrant解决方案,你可能已经注意到,在第一次vagrant up之后,让一切运行起来是多么罕见。总是会出现一些问题,例如过时的或更新过多的Puppet、过时的Ubuntu存储库或其他一些神秘的错误,需要大量的“论坛搜索”才能解决。Homestead则简单地……工作。

Homestead安装在带有PHP 5.5的Ubuntu 14.04上,所以它尽可能新,不会进入beta/RC领域,Nginx(因为我们现在都放弃Apache了,对吧?)、MySQL和Postgres,所以你可以立即准备好Heroku(它们的默认是Heroku Postgres)、Node(用于所有静态资源编译需求、后台任务和其他不太重要的业务)、Redis、Memcached和Beanstalkd(用于所有缓存和排队需求)、Laravel Envoy(用于所有远程服务器任务需求)以及Fabric Hipchat扩展,以便你可以通过Hipchat进行应用程序部署(也称为chatops)。

2. 它是Otwell认可的

Homestead是官方的,也就是由Laravel之父Taylor Otwell制作的,这意味着它自动被认为符合某些标准。虽然Laravel社区并非没有争议(谁在乎一个类叫什么?如果一个革命性的新框架称一个模型为土豆、外观或火箭,只要土豆/外观/火箭能工作,那就完全没问题),但Taylor参与其中的独特性赋予了它在当今PHP世界中非常需要的简洁性和质量。我们已经看到太多开源项目被团队自负、狂热的贡献者或不称职的全能者所毁坏,我个人认为Taylor几乎独家参与Laravel的改进是使其在其他项目中脱颖而出并真正使其在质量上与Phalcon竞争的原因。

Homestead是他自己的项目,被称为“官方本地开发环境”,他会尽一切努力保持其高质量并确保其始终有效。任何不足之处,都会影响他的声誉。在今天的PHP中,一个项目长期可靠性的最佳保证莫过于它(主要)由一个非常关心质量的人拥有。

3. 设置快速

设置Homestead易如反掌。按照文档页面上的说明,你只需要将Homestead box添加到你的Vagrant(如果你还没有的话)并克隆repo。

6 Reasons to Move to Laravel Homestead

还有一个我们不习惯的额外步骤——设置SSH。这也很简单,需要在克隆repo后编辑你的Homestead.yaml文件。只需将相关行指向你的SSH密钥,就可以了。在我的例子中,我必须更改以下内容:

<code>---
ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: /Users/me/.ssh/id_rsa.pub

keys:
    - /Users/me/.ssh/id_rsa

folders:
    - map: /Users/me/Code
      to: /home/vagrant/Code

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public

variables:
    - key: APP_ENV
      value: local</code>

<code>---
ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: C:\Users\Bruno\.ssh\id_rsa.pub

keys:
    - C:\Users\Bruno\.ssh\id_rsa

folders:
    - map: D:\VM\vagrant_boxes\homestead\Homestead
      to: /home/vagrant/Code

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public

variables:
    - key: APP_ENV
      value: local</code>

在我们运行vagrant up之后,一切应该就绪:

6 Reasons to Move to Laravel Homestead

正如你所看到的,我的过程产生了一些错误,但最终仍然运行良好:

6 Reasons to Move to Laravel Homestead

4. 端口

Homestead默认打开某些重要端口,这使得从主机管理和维护虚拟机上的数据库和其他已安装软件变得轻而易举。例如,要使用安装在主机(在我的情况下是Windows)上的MySQL Workbench连接到已安装的MySQL数据库,你只需将所需的凭据输入到连接窗口中:

6 Reasons to Move to Laravel Homestead

默认的MySQL和Postgres端口只是附加了一个零(例如,MySQL为33060而不是3306),这允许你连接到localhost(127.0.0.1:33060)并授予对虚拟机上数据库的访问权限。

这样做的潜在缺点是,由于冲突,你不能同时运行多个box而无需更改端口。如果数据库连接只是打开的,并且可以像往常一样连接到虚拟机的IP,那就更好了,但这很容易解决——只需查看我之前的一些vagrantfiles即可了解其外观。

5. 最佳实践和共同点

由于Homestead是官方的,你可以放心,如果你遇到任何问题,随时都会有一个庞大的社区提供帮助。你将与所有使用Homestead的人拥有相同的起点,问题将自动变得更容易诊断。

6. 易于添加站点

由于可以在微调Homestead时调整配置文件的简易性,添加新站点(虚拟主机)轻而易举——你甚至不必处理nginx文件中的单个虚拟主机配置。

默认情况下,Homestead.yaml文件注册一个名为“homestead.app”的单个虚拟主机,该虚拟主机作为虚拟机服务器配置的默认站点。你可以通过在浏览器中访问虚拟机的IP地址(常规端口80:https://www.php.cn/link/173e2619a507a324eb10f969df13a372

<code>---
ip: "192.168.10.10"
memory: 2048
cpus: 1

authorize: /Users/me/.ssh/id_rsa.pub

keys:
    - /Users/me/.ssh/id_rsa

folders:
    - map: /Users/me/Code
      to: /home/vagrant/Code

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public

variables:
    - key: APP_ENV
      value: local</code>

你注册了一个新的虚拟主机。然后,如果你将该新站点的名称添加到你的hosts文件中(在任何平台上),你就可以通过浏览器按名称访问该新站点,你只需要通过端口8000进行访问:https://www.php.cn/link/e1490523b8cd2c130b29656613850cf8

此过程允许你根据需要向虚拟机添加任意数量的虚拟主机,从而从单个box提供多个项目的服务。

缺少的功能

在一些缺少的功能中,我会列出以下内容:

  • Homestead缺少全局composer安装,这意味着你必须为每个项目手动获取它。
  • 上述端口问题——如果端口只是打开的,那么连接到虚拟机的IP而不是通过特定端口连接到localhost IP会更好。这将避免端口冲突,并允许同时运行多个Homestead虚拟机。
  • 没有Laravel。Homestead最好在默认虚拟主机中默认包含基本的Laravel项目,以便可以立即开始开发,而无需从头创建一个新项目。
  • HHVM支持会很不错,符合Vaprobash的精神。

结论

Laravel Homestead是迄今为止最好和最稳定的PHP Vagrant环境之一。它启动速度极快,包含很少的依赖项,这些依赖项在运行时可能会中断,并为立即开始进行黑客攻击配置了一个现代的、最新的PHP环境。

你正在使用它吗?请告诉我们。

Laravel Homestead常见问题解答 (FAQs)

什么是Laravel Homestead,为什么我应该使用它?

Laravel Homestead是一个预打包的Vagrant box,它提供了一个绝佳的开发环境,无需在本地机器上安装PHP、Web服务器及任何其他服务器软件。它非常有益,因为它在多个操作系统上提供了始终如一的开发环境。这意味着所有团队成员都可以使用相同的环境,无论他们使用的是Mac、Windows还是Linux。

如何安装Laravel Homestead?

要安装Laravel Homestead,你首先需要安装VirtualBox 6.x、VMWare、Parallels或Hyper-V作为提供程序。然后,安装Vagrant。安装完成后,你可以使用命令“vagrant box add laravel/homestead”将Laravel Homestead box添加到你的Vagrant安装中。最后,你可以通过将存储库克隆到你的主机来安装Homestead。

Laravel Homestead的系统要求是什么?

Laravel Homestead需要Vagrant和一个虚拟机管理程序,如VirtualBox、VMWare或Parallels。它还需要至少1GB的RAM,但如果可能,建议分配2GB或更多。主机应具有64位处理器和足够的磁盘空间来存储你的项目文件和数据库。

如何配置Laravel Homestead?

Laravel Homestead通过Homestead.yaml文件进行配置。此文件允许你将项目目录映射到Homestead环境,配置共享文件夹并设置Nginx站点。你还可以在此文件中指定PHP版本、数据库类型和其他设置。

如何更新Laravel Homestead?

要更新Laravel Homestead,可以使用“vagrant box update”命令。这会将Vagrant box更新到最新版本。但是,请记住在更新之前备份你的Homestead.yaml文件和其他任何重要数据,因为更新过程可能会覆盖这些文件。

我可以将Laravel Homestead与其他PHP框架一起使用吗?

是的,Laravel Homestead不仅限于Laravel项目。你可以将其与任何可以在PHP 7.4或PHP 8.0服务器上运行的PHP项目一起使用。这包括Symfony、CakePHP、Yii等框架。

如何排除Laravel Homestead中的问题?

Laravel Homestead提供了多种故障排除工具。你可以使用带有“–debug”标志的“vagrant up”命令来获取详细日志。你还可以SSH进入Homestead box并检查Nginx、PHP和MySQL日志中的任何错误。

如何连接到Laravel Homestead中的数据库?

Laravel Homestead预装了MySQL、Postgres、SQLite和Memcached。你可以使用Homestead文档中提供的默认凭据连接到这些数据库。你还可以使用Sequel Pro或MySQL Workbench等工具连接到这些数据库。

我可以在Laravel Homestead中运行多个项目吗?

是的,Laravel Homestead支持运行多个项目。你可以在Homestead.yaml文件中映射多个项目目录,并为每个项目配置单独的Nginx站点。每个项目都有其自己的URL,并且可以独立访问。

如何卸载Laravel Homestead?

要卸载Laravel Homestead,可以使用“vagrant destroy”命令。这会将Homestead box及其所有数据从你的机器中删除。但是,请记住在运行此命令之前备份任何重要数据,因为它会删除你所有的项目文件和数据库。

以上是搬到Laravel Homestead的6个理由的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
11个最佳PHP URL缩短脚本(免费和高级)11个最佳PHP URL缩短脚本(免费和高级)Mar 03, 2025 am 10:49 AM

长URL(通常用关键字和跟踪参数都混乱)可以阻止访问者。 URL缩短脚本提供了解决方案,创建了简洁的链接,非常适合社交媒体和其他平台。 这些脚本对于单个网站很有价值

在Laravel中使用Flash会话数据在Laravel中使用Flash会话数据Mar 12, 2025 pm 05:08 PM

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

构建具有Laravel后端的React应用程序:第2部分,React构建具有Laravel后端的React应用程序:第2部分,ReactMar 04, 2025 am 09:33 AM

这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

简化的HTTP响应在Laravel测试中模拟了简化的HTTP响应在Laravel测试中模拟了Mar 12, 2025 pm 05:09 PM

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

php中的卷曲:如何在REST API中使用PHP卷曲扩展php中的卷曲:如何在REST API中使用PHP卷曲扩展Mar 14, 2025 am 11:42 AM

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

在Codecanyon上的12个最佳PHP聊天脚本在Codecanyon上的12个最佳PHP聊天脚本Mar 13, 2025 pm 12:08 PM

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

宣布 2025 年 PHP 形势调查宣布 2025 年 PHP 形势调查Mar 03, 2025 pm 04:20 PM

2025年的PHP景观调查调查了当前的PHP发展趋势。 它探讨了框架用法,部署方法和挑战,旨在为开发人员和企业提供见解。 该调查预计现代PHP Versio的增长

Laravel中的通知Laravel中的通知Mar 04, 2025 am 09:22 AM

在本文中,我们将在Laravel Web框架中探索通知系统。 Laravel中的通知系统使您可以通过不同渠道向用户发送通知。今天,我们将讨论您如何发送通知OV

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版