Laravel Homestead:便捷的本地开发环境
想快速上手Homestead?请查看快速提示。想了解其详情,请继续阅读。
简单来说,Laravel Homestead 是:
一个官方预打包的Vagrant “box”,它为你提供了一个绝佳的开发环境,无需在本地机器上安装PHP、Web服务器及任何其他服务器软件。
换句话说,它自动完成了我们在之前的文章中(例如这些文章)手动通过Vagrant和PuPHPet完成的操作。
那么,它与普通的Vaprobash/Vagrant/PuPHPet设置有何不同呢?让我们来看看。
与其他流行的简化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)。
Homestead是官方的,也就是由Laravel之父Taylor Otwell制作的,这意味着它自动被认为符合某些标准。虽然Laravel社区并非没有争议(谁在乎一个类叫什么?如果一个革命性的新框架称一个模型为土豆、外观或火箭,只要土豆/外观/火箭能工作,那就完全没问题),但Taylor参与其中的独特性赋予了它在当今PHP世界中非常需要的简洁性和质量。我们已经看到太多开源项目被团队自负、狂热的贡献者或不称职的全能者所毁坏,我个人认为Taylor几乎独家参与Laravel的改进是使其在其他项目中脱颖而出并真正使其在质量上与Phalcon竞争的原因。
Homestead是他自己的项目,被称为“官方本地开发环境”,他会尽一切努力保持其高质量并确保其始终有效。任何不足之处,都会影响他的声誉。在今天的PHP中,一个项目长期可靠性的最佳保证莫过于它(主要)由一个非常关心质量的人拥有。
设置Homestead易如反掌。按照文档页面上的说明,你只需要将Homestead box添加到你的Vagrant(如果你还没有的话)并克隆repo。
还有一个我们不习惯的额外步骤——设置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之后,一切应该就绪:
正如你所看到的,我的过程产生了一些错误,但最终仍然运行良好:
Homestead默认打开某些重要端口,这使得从主机管理和维护虚拟机上的数据库和其他已安装软件变得轻而易举。例如,要使用安装在主机(在我的情况下是Windows)上的MySQL Workbench连接到已安装的MySQL数据库,你只需将所需的凭据输入到连接窗口中:
默认的MySQL和Postgres端口只是附加了一个零(例如,MySQL为33060而不是3306),这允许你连接到localhost(127.0.0.1:33060)并授予对虚拟机上数据库的访问权限。
这样做的潜在缺点是,由于冲突,你不能同时运行多个box而无需更改端口。如果数据库连接只是打开的,并且可以像往常一样连接到虚拟机的IP,那就更好了,但这很容易解决——只需查看我之前的一些vagrantfiles即可了解其外观。
由于Homestead是官方的,你可以放心,如果你遇到任何问题,随时都会有一个庞大的社区提供帮助。你将与所有使用Homestead的人拥有相同的起点,问题将自动变得更容易诊断。
由于可以在微调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提供多个项目的服务。
在一些缺少的功能中,我会列出以下内容:
Laravel Homestead是迄今为止最好和最稳定的PHP Vagrant环境之一。它启动速度极快,包含很少的依赖项,这些依赖项在运行时可能会中断,并为立即开始进行黑客攻击配置了一个现代的、最新的PHP环境。
你正在使用它吗?请告诉我们。
Laravel Homestead是一个预打包的Vagrant box,它提供了一个绝佳的开发环境,无需在本地机器上安装PHP、Web服务器及任何其他服务器软件。它非常有益,因为它在多个操作系统上提供了始终如一的开发环境。这意味着所有团队成员都可以使用相同的环境,无论他们使用的是Mac、Windows还是Linux。
要安装Laravel Homestead,你首先需要安装VirtualBox 6.x、VMWare、Parallels或Hyper-V作为提供程序。然后,安装Vagrant。安装完成后,你可以使用命令“vagrant box add laravel/homestead”将Laravel Homestead box添加到你的Vagrant安装中。最后,你可以通过将存储库克隆到你的主机来安装Homestead。
Laravel Homestead需要Vagrant和一个虚拟机管理程序,如VirtualBox、VMWare或Parallels。它还需要至少1GB的RAM,但如果可能,建议分配2GB或更多。主机应具有64位处理器和足够的磁盘空间来存储你的项目文件和数据库。
Laravel Homestead通过Homestead.yaml文件进行配置。此文件允许你将项目目录映射到Homestead环境,配置共享文件夹并设置Nginx站点。你还可以在此文件中指定PHP版本、数据库类型和其他设置。
要更新Laravel Homestead,可以使用“vagrant box update”命令。这会将Vagrant box更新到最新版本。但是,请记住在更新之前备份你的Homestead.yaml文件和其他任何重要数据,因为更新过程可能会覆盖这些文件。
是的,Laravel Homestead不仅限于Laravel项目。你可以将其与任何可以在PHP 7.4或PHP 8.0服务器上运行的PHP项目一起使用。这包括Symfony、CakePHP、Yii等框架。
Laravel Homestead提供了多种故障排除工具。你可以使用带有“–debug”标志的“vagrant up”命令来获取详细日志。你还可以SSH进入Homestead box并检查Nginx、PHP和MySQL日志中的任何错误。
Laravel Homestead预装了MySQL、Postgres、SQLite和Memcached。你可以使用Homestead文档中提供的默认凭据连接到这些数据库。你还可以使用Sequel Pro或MySQL Workbench等工具连接到这些数据库。
是的,Laravel Homestead支持运行多个项目。你可以在Homestead.yaml文件中映射多个项目目录,并为每个项目配置单独的Nginx站点。每个项目都有其自己的URL,并且可以独立访问。
要卸载Laravel Homestead,可以使用“vagrant destroy”命令。这会将Homestead box及其所有数据从你的机器中删除。但是,请记住在运行此命令之前备份任何重要数据,因为它会删除你所有的项目文件和数据库。
以上是搬到Laravel Homestead的6个理由的详细内容。更多信息请关注PHP中文网其他相关文章!