随着 Laravel 11 的发布,一个全新的第一方 websocket 软件包 Reverb 应运而生。Reverb 取代了对第三方 websocket 服务器(如 Soketi 或 Ratchet)的需求,让你的代码库同时充当 websocket 客户端和服务器,帮助你的项目保持整洁美观,而不再依赖于通常是未维护的遗留软件包。
在本指南中,我们将建立一个全新的 Laravel 11 项目,安装 Reverb,然后直接从 GitHub 将其部署到服务器上。此外,我们还将介绍如何使用监管者(supervisor)配置服务器作为 Reverb 主机。
创建新的 Laravel 11 项目
要开始创建项目,我们先使用 Laravel 安装包。它提供了一个方便的命令行来安装和设置 Laravel 的一些基本功能。
如果你没有 Laravel 安装包,或者想使用其他方法,Laravel 官方文档中还有其他一些创建新项目的方法。
laravel new laravel-reverb-demo
上述命令将在一个子目录下创建一个新项目。在安装过程中,你会被问到几个问题:你想使用哪个数据库服务器(我们的演示使用的是 SQLite,但你也可以选择自己喜欢的数据库服务),你是想安装 Laravel Breeze 还是 Jetstream,以及你是否想初始化一个 git 仓库(选择 “是 “就可以跟上本指南)。
程序安装完成后,你可以使用 Valet 等本地网络服务器,或使用 Laravel 提供的命令行 PHP 服务工具,在本地进行检查:
hp artisan serve
安装 Laravel Reverb
现在你已经有了一个全新的 Laravel 项目,是时候安装 Reverb 了。在 Laravel 11 中,安装变得异常简单。只需在终端浏览你的项目,然后运行安装命令即可:
php artisan install:broadcasting
在安装过程中,系统会询问您是否要安装和构建 Reverb 的 Node 依赖项,请选择 “是”。完成构建后,Reverb 就安装完成了。
配置 Laravel Reverb
Reverb 安装完成后,就需要对其进行配置,以便与你的项目配合使用。这可能需要调整配置,或者在现有代码库中实现它。
我们建议按照 Reverb 官方文档进行配置,因为每个用例都可能略有不同。一旦对项目的预期效果感到满意,就可以继续下一步,即部署你的项目。
部署你的 Laravel Reverb 应用程序
一旦你运行了 Reverb,并根据需要在本地实现了它,你就会想把它部署到服务器上。
ServerAuth 的站点管理允许你直接从 GitHub 部署站点,每次推送到生产分支时都会自动部署。下面我们将详细介绍如何在 ServerAuth 管理的服务器上设置 Reverb 项目。
在本指南的其余部分,我们假设你已经将项目提交到 GitHub 上的生产分支,并用 ServerAuth 设置了服务器。如果还没有这样做,可以查看我们关于设置服务器的其他指南。
1. 添加新网站
在 ServerAuth 的服务器管理页面,点击左侧边栏的 “站点 “链接。如果你的服务器尚未配置网站托管功能,系统将提示进行安装。
ServerAuth 故意不在服务器上安装功能,除非计划使用这些功能。点击安装按钮后,服务器将自动配置 Nginx 和 PHP。
服务器启用网站支持后,点击右上角的添加网站按钮开始设置项目。系统会提示你提供域名、网站类型(从列表中选择 “PHP 或静态 HTML”)、PHP 版本(选择 8.3 或更新版本)和用户(如果你愿意,也可以为该网站创建一个特定的新用户)。请务必勾选 “已启用 SSL “复选框,除非您想使用临时域,在这种情况下,请勾选 “启用临时域 “复选框。最后,单击 “添加网站 “按钮开始设置过程。
现在,ServerAuth 将为你的网站配置网络服务器。配置完成后,将看到网站仪表板,其中提供了网站的总体概览。
下面是我们的网站设置:
2. 部署网站
现在您已经建立了一个新的空白网站,我们需要将它连接到您的 GitHub 项目。如果您还没有这样做,请在此处将您的 GitHub 账户与 ServerAuth 账户连接起来。这将允许 ServerAuth 自动将你的项目拉入服务器。
接下来,点击网站概览页面上的 “安装应用程序 “按钮,并选择可以访问项目仓库的 GitHub 账户。
在文本框中输入版本库名称(例如:yourname/yourproject),然后选择要部署的分支。
选择分支后,你就可以选择启用自动部署和运行迁移。我们的情况如下:
部署项目后,请检查您是否可以访问它,然后再继续。
3. 启用 Laravel Reverb
现在,你的网站已经运行,是时候启用 Laravel Reverb 了。为此,我们将使用ServerAuth内置的Supervisor守护进程管理。
在本例中,我们将只使用Supervisor设置,不过Reverb也支持通过Nginx运行,这在官方文档中有介绍。如果您希望在 ServerAuth 服务器上进行此操作并保持整洁,可以创建一个 “预加载 “文件,该文件将在网站的主要 nginx 配置之前加载,其中可以包含您的 Reverb 特定 nginx 配置。要添加该文件,请将其放在/etc/nginx/serverauth/sites/yourdomain.com/reverb.conf.pre目录下,以便自动加载到网站配置中。
要设置 Reverb 使用 Supervisor,请在 ServerAuth 中浏览您的服务器,然后从侧边栏中选择 “Daemons”。如果尚未安装 Supervisor,会显示一个安装按钮。
安装完成后,就可以为混响添加一个新的守护进程。这里的关键部分是项目路径和运行命令。可以通过 artisan 使用 reverb:start 选项运行混响。
现在您已经设置好 Reverb 并让它在服务器上运行!如果您在部署好的网站上浏览 8080 端口,就会看到 Reverb 默认的 “Not found.”(未找到)消息。这意味着 Reverb 正在运行,没有提供任何操作,您现在可以开始在网站上使用 websockets 了。
常见问题
- 许多服务器提供商在主机级别禁用某些端口。如果你使用的是 AWS 或 Azure 等服务提供商,可能需要在其防火墙上打开 8080 端口(有时在其平台上称为安全组)。
- Reverb 需要 Laravel 11 和至少 PHP 8.2。如果服务器的默认 PHP 版本较早,请务必参考所选 PHP 版本的完整路径。在由 ServerAuth 管理的 Ubuntu 服务器上,通常是 /usr/bin/php8.x。
在部署 Laravel 项目时使用 ServerAuth
Laravel 提供了令人难以置信的灵活性和易开发性,可以在短时间内构建复杂的应用程序。使用 ServerAuth,你可以直接从 Git 仓库将 Laravel 项目部署到实时和暂存站点。
结合内置的数据库、cronjob 和调度程序管理,ServerAuth 是让 Laravel 服务器托管变得轻而易举的理想助手!
原文:https://dev.to/serverauth/deploying-laravel-11-with-reverb-websocket-support-4mna
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/44947.html