发布于 2026-01-06 0 阅读
0

本地 Laravel 开发的现状

本地 Laravel 开发的现状

现在,在本地开发环境中使用 Laravel 有很多选择。以前只有寥寥几种选择,现在官方支持的选项已经超过六种

在本文中,我将尝试对每一种技术进行简要概述,提供一些优缺点,并简要介绍开始使用每一种技术所需的基本知识。

想直接跳到某个特定部分吗?以下是我们即将讨论的方法列表:

好了,让我们直接进入正题吧!

在本地安装服务器堆栈

最可靠的方法是直接在本地开发硬件上安装完整的 LAMP 环境。在 Linux(以及在某种程度上在 macOS)系统上,这并不。但对于未使用 WSL 的 Windows 用户来说,如果没有使用像 WAMP 这样的预编译软件,安装过程可能会比较复杂。

我喜欢这种方法的原因:

  • 由于是直接在机器上运行,所以响应速度最快。
  • 计算机启动后,所有程序都已准备就绪。
  • 软件栈可以使用机器上的全部资源。

我不喜欢的地方:

  • 升级操作系统可能会导致 Apache 或 MySQL 等服务出现问题。
  • 同时运行多个网站可能很困难。
  • 本地环境和生产环境之间的硬件差异可能会导致部署问题。

尽管存在一些不足,但这仍然是搭建本地 Laravel 开发环境的一种可靠方法。入门可能需要一些时间,但整个过程相当简单。您需要安装 Apache、MySQL 和 PHP,设置指向本地域名的虚拟主机规则,最后启用应用程序所需的 PHP 扩展。

我找到的针对每种操作系统的最佳教程如下:

完成安装和设置过程后,您只需确保您的 Laravel 应用程序位于您在 Web 服务器配置中设置的正确路径下,即可开始使用!

流浪者和家园

Homestead 是Laravel官方发布的 Vagrant box,旨在帮助您快速搭建本地容器化环境。如果您还不熟悉Vagrant ,它是一款可以帮助您配置和管理虚拟机的应用程序,能够复制应用程序所需的全部软件栈。

我喜欢这种方法的原因:

  • 在本地硬件和软件与应用程序所需组件之间建立隔离。
  • 只需几个命令即可轻松上手
  • 可以分配一部分系统资源,确保应用程序不会过度占用资源。

我不喜欢的地方:

  • 即使是小型虚拟机也会占用相当多的系统资源。
  • 由于文件系统被虚拟化层隔离,响应时间可能会延迟。
  • Vagrant 在大多数应用中已基本被 Docker 和其他现代容器化软件所取代。

尽管有些人可能认为 Vagrant 已经过时,被更现代的容器化软件所取代,但它仍然是一款经过实战检验的企业级解决方案,十多年来一直为生产应用程序提供支持和部署。

首先,您只需:

之后,您的 Laravel 应用程序应该可以通过浏览器访问localhost。此外,还有各种可选服务会随虚拟机启动并暴露给您的本地系统(例如MongoDB、Mailhog 和 Minio)。

匠心服务

就要求而言,该方法与本地服务器堆栈遵循类似的路径,只是基本上可以跳过安装 Web 服务器。

您需要在本地计算机上安装PHP 和 MySQL(或您选择的数据库)。其底层原理是使用 PHP 内置的Web 服务器来运行该命令,并将默认端口暴露:8000给您的本地计算机。

我喜欢这种方法的原因:

  • 启动开发服务器再简单不过了。
  • 无需安装或配置本地 Web 服务器(例如 Apache)。
  • 非常节约资源

我不喜欢的地方:

  • 大型请求的响应时间可能会很长。
  • Web 服务器运行的是单线程进程,因此如果请求被阻塞,应用程序将会停止运行。

我认为,如果你只是运行一个本地开发应用程序实例,这种方法应该很适合你。再配合Ngrok或 Beyond Code 的Expose之类的工具来对开发端口进行域名掩码,那就万事俱备了。

要使用此方法,您只需打开终端并cd切换到 Laravel 应用的项目目录。然后运行以下命令:

php artisan serve
Enter fullscreen mode Exit fullscreen mode

您也可以选择按如下方式指定端口:

php artisan serve --port=8808
Enter fullscreen mode Exit fullscreen mode

你应该会收到本地 Laravel 开发服务器已启动的通知127.0.0.1:8000(除非你指定了其他端口)。在浏览器中打开它,就可以开始使用了!

Sail 是 Laravel官方本地开发家族的最新成员,它是一个命令行界面,可以帮助您设置、配置和与默认的 Docker 开发环境进行交互。

您可以选择将 Sail 安装到现有应用程序旁边,也可以使用它来启动一个全新的 Laravel 应用程序。Sail 允许您运行 PHP、Composer、npm 和 artisan 命令,而无需在本地计算机上安装除 Docker 之外的任何其他软件。

我喜欢这种方法的原因:

  • 除了 Docker 之外,无需安装任何其他依赖项。
  • 多个应用程序可以同时运行
  • sail:publish使用artisan 命令轻松构建生产文件

我不喜欢的地方:

  • 本地 Docker 实例的响应时间出了名的慢,尤其是在 MacOS 上(尽管这个问题正在努力解决)。
  • 由于 Sail 的设计理念是简洁易用,因此对于新手来说,开箱即用的自定义功能可能略显困难。

也就是说,如果您一直想尝试 Docker,或者只是不想在本地系统上安装任何依赖项,那么它绝对是个绝佳的起点。使用它,您可以在几分钟内搭建并运行一个完整的 Web 服务器。

如果您想亲自尝试一下,操作非常简单。对于现有应用程序,只需运行:

composer require laravel/sail --dev
php artisan sail:install
./vendor/bin/sail up
Enter fullscreen mode Exit fullscreen mode

如果您想使用 Sail 从头开始​​创建一个新的应用程序:

curl -s https://laravel.build/my-app | bash
cd my-app && ./vendor/bin/sail up
Enter fullscreen mode Exit fullscreen mode

这两种方法都会使用Docker Compose启动一个 Docker 容器网络,并将你的应用程序暴露给 Docker localhost:80

代客泊车

注意:此选项仅适用于 macOS 用户。

Laravel Valet是一个流畅、快速且资源占用低的开发环境,它结合了 Nginx 和 DnsMasq 来代理所有对.test域名的请求,并将它们指向您机器上预定路径上的站点。

虽然仍然需要一些依赖项,但远没有完整的 Web 服务器栈那么复杂。你需要Brew、PHP 和 Composer才能开始,还需要一个本地数据库(例如 MySQL 或 PostgreSQL)。Laravel 官方文档建议使用DBngin来进行设置。

我喜欢这种方法的原因:

  • 速度极快,因为所有操作都像第一种方法一样在你的本地计算机上运行。
  • Web 服务器占用的系统资源非常少,平均仅占用约 7MB 内存。
  • 它提供了丰富的命令,可用于管理本地站点,甚至可以切换 PHP 版本。

我不喜欢的地方:

  • 大量的 PHP 请求仍然会占用系统资源,导致机器运行缓慢。
  • 不包含任何现成的数据库管理功能。
  • 它会自动代理所有.test域名,因此您无法在未使用 Valet 的应用程序上使用该域名。

Valet 或许正在逐渐被 Homestead 和 Sail 等更新的容器化方法所取代,但它仍然是开发中启动和管理 Laravel 应用程序的强大工具。

拉拉多克

Laradock被誉为“适用于 Docker 的完整 PHP 开发环境”,它是一套功能强大且特性丰富的配置文件,用于使用 Docker 进行本地 Laravel 开发。

该软件包已经存在几年了,因此已成为创建本地开发环境和协助 Laravel 应用程序生产部署的事实标准之一。

我喜欢这种方法的原因:

  • 它几乎包含了你在 Laravel 应用程序中可能用到的所有服务,开箱即用。
  • 已针对本地和生产环境进行配置,使您可以轻松地将应用程序部署到运行 Docker 的服务器上。
  • 包含设置 xDebug 的分步文档。

我不喜欢的地方:

  • 与 Sail 类似,响应时间可能会有所不同,而且与本文中提到的其他方法相比,响应时间往往较慢。
  • 由于时间推移,它不断发展壮大,并且扩展到 Laravel 以外的领域,因此显得有些臃肿。
  • 定制起来可能比较困难,尤其是对于 Docker 初学者而言。

Laradock 的文档非常详尽,毫不夸张地说。不过,其内容大致可以归纳为以下几点:

  • 为您的操作系统安装 Docker
  • 使用 git 克隆 Laradock 仓库
  • 将文件复制env-example.env项目根目录
  • 修改新.env文件,添加您需要的服务。

完成以上步骤后,只需在项目根目录运行以下命令即可:

docker-compose up -d nginx mysql
Enter fullscreen mode Exit fullscreen mode

正如文档中所述,启动容器时nginx,它依赖于php-fpm服务。无需在 up 命令中指定 php-fpm,因为它会自动启动。

接下来,你需要仔细研读文档,学习如何使用 Laravel 应用所依赖的各项服务。文档中分别介绍了如何使用 Redis 进行缓存如何配置 Traefik以及如何运行 Artisan 命令。虽然可能需要一些时间才能完全按照你的要求进行配置,但一旦完成,你将拥有一个功能强大的环境,而且无需任何本地依赖。

自行搭建 Docker 环境

最后,也是我个人最喜欢的本地 Laravel 开发环境搭建方法,就是使用 Docker 搭建自己的环境!

以上所有工具都考虑到了通用应用程序的需求,并力求将其打包成简洁易用的软件包,方便用户使用和访问。如果您希望尽可能快速、轻松地搭建本地环境,它们都是绝佳的选择,绝对能节省您的时间。

然而,作为一名全栈开发人员,我负责从开发到部署的整个业余项目,我真的很想找个借口深入研究 Docker,并创建一个完全符合我需求的本地环境。

这就是我创建docker-compose-laravel 的原因,也是我所有 Laravel 项目开发环境的基础。

我喜欢这种方法的原因:

  • 它使您能够准确了解本地 Docker 环境中正在使用哪些服务。
  • 完全控制和自定义您的 Dockerfiles 和 docker-compose.yml 文件
  • 可以轻松配置用于本地开发和生产环境

我不喜欢的地方:

  • 使用新技术需要花费时间和精力去学习。
  • 调试 Docker 容器问题往往令人沮丧。
  • 如果在非 Linux 文件系统上使用卷,PHP 的响应时间可能会相当慢。

结合Docker 文档和 DigitalOcean 提供的指南资源,我搭建了一个既符合我的需求,又能满足我的应用程序所需服务的环境。

今天就到这里!

以下是搭建本地 Laravel 开发环境最热门的七种方法。市面上有很多选择,希望本指南能帮助你找到最适合自己的方法!

如果您对此或任何其他网站开发主题有任何疑问,请随时在Twitter上联系我,或在下方评论区留言。

文章来源:https://dev.to/aschmelyun/the-current-state-of-local-laravel-development-4if2