目录
关键要点
1. 它能工作
2. 它是Otwell认可的
3. 设置快速
4. 端口
5. 最佳实践和共同点
6. 易于添加站点
缺少的功能
结论
Laravel Homestead常见问题解答 (FAQs)
什么是Laravel Homestead,为什么我应该使用它?
如何安装Laravel Homestead?
Laravel Homestead的系统要求是什么?
如何配置Laravel Homestead?
如何更新Laravel Homestead?
我可以将Laravel Homestead与其他PHP框架一起使用吗?
如何排除Laravel Homestead中的问题?
如何连接到Laravel Homestead中的数据库?
我可以在Laravel Homestead中运行多个项目吗?
如何卸载Laravel Homestead?
首页 后端开发 php教程 搬到Laravel Homestead的6个理由

搬到Laravel Homestead的6个理由

Feb 21, 2025 am 10:36 AM

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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1659
14
CakePHP 教程
1416
52
Laravel 教程
1310
25
PHP教程
1258
29
C# 教程
1232
24
会话如何劫持工作,如何在PHP中减轻它? 会话如何劫持工作,如何在PHP中减轻它? Apr 06, 2025 am 12:02 AM

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。

说明PHP中的不同错误类型(注意,警告,致命错误,解析错误)。 说明PHP中的不同错误类型(注意,警告,致命错误,解析错误)。 Apr 08, 2025 am 12:03 AM

PHP中有四种主要错误类型:1.Notice:最轻微,不会中断程序,如访问未定义变量;2.Warning:比Notice严重,不会终止程序,如包含不存在文件;3.FatalError:最严重,会终止程序,如调用不存在函数;4.ParseError:语法错误,会阻止程序执行,如忘记添加结束标签。

PHP和Python:比较两种流行的编程语言 PHP和Python:比较两种流行的编程语言 Apr 14, 2025 am 12:13 AM

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

什么是HTTP请求方法(获取,发布,放置,删除等),何时应该使用? 什么是HTTP请求方法(获取,发布,放置,删除等),何时应该使用? Apr 09, 2025 am 12:09 AM

HTTP请求方法包括GET、POST、PUT和DELETE,分别用于获取、提交、更新和删除资源。1.GET方法用于获取资源,适用于读取操作。2.POST方法用于提交数据,常用于创建新资源。3.PUT方法用于更新资源,适用于完整更新。4.DELETE方法用于删除资源,适用于删除操作。

说明PHP中的安全密码散列(例如,password_hash,password_verify)。为什么不使用MD5或SHA1? 说明PHP中的安全密码散列(例如,password_hash,password_verify)。为什么不使用MD5或SHA1? Apr 17, 2025 am 12:06 AM

在PHP中,应使用password_hash和password_verify函数实现安全的密码哈希处理,不应使用MD5或SHA1。1)password_hash生成包含盐值的哈希,增强安全性。2)password_verify验证密码,通过比较哈希值确保安全。3)MD5和SHA1易受攻击且缺乏盐值,不适合现代密码安全。

PHP:网络开发的关键语言 PHP:网络开发的关键语言 Apr 13, 2025 am 12:08 AM

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

解释PHP 7.4中引入的箭头功能(短闭合)。 解释PHP 7.4中引入的箭头功能(短闭合)。 Apr 06, 2025 am 12:01 AM

箭头函数在PHP7.4中引入,是短闭包的简化形式。1)它们使用=>运算符定义,省略function和use关键字。2)箭头函数自动捕获当前作用域变量,无需use关键字。3)它们常用于回调函数和短小计算,提高代码简洁性和可读性。

PHP行动:现实世界中的示例和应用程序 PHP行动:现实世界中的示例和应用程序 Apr 14, 2025 am 12:19 AM

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

See all articles