Languages

Version

Theme

部署到生产环境

介绍

将一个使用 Filament 的 Laravel 应用部署到生产环境与部署其他 Laravel 应用相似。不过,对于 Filament 面板,还有一些额外的步骤来确保性能及安全上的优化

确保用户有权限访问面板

当用户监测到你应用的 APP_ENV 不是 local 时,它会要求你为用户设置权限。这是为了确保生产环境中只有授权用户才能访问 Filament 面板,同时也保留了本地环境易于使用的特点。

要授予用户访问面板的权限,请遵循用户章节的相关指南.

NOTE

如果你没有遵循这些步骤,且用户模型没有实现 FilamentUser 接口,生产环境中的用户将无法登录到面板中。

提升 Filament 面板性能

生产环境中优化 Filament

要在生产环境中优化优化 Filament,你应该在部署脚本中运行如下命令:

php artisan filament:optimize

该命令将缓存 Filament 组件以及 Blade 图标,这样可以显著提升 Filament 面板的性能,该命令是 php artisan filament:cache-componentsphp artisan icons:cache 的快捷方式。

清理缓存请运行:

php artisan filament:optimize-clear

缓存 Filament 组件

如果你没有使用 filament:optimize 命令,你也可以考虑在部署脚本中运行 php artisan filament:cache-components,特别是当你有大量组件(资源、页面、Widget、关联管理器、自定义 Livewire 组件等)时。这将在应用的 bootstrap/cache/filament 目录中生成缓存文件,其中包含每个组件类型的索引。这在某些应用中可以显著提升 Filament 的性能,因为它减少了需要扫描的文件数量并且自动发现组件。

不过,如果你在本地开发应用,应该避免使用该命令,因为它在清除或者重新缓存之前,将会阻止你发现新组件。

你可以运行 php artisan filament:clear-cached-components 在任何时候清理缓存而不重新生成缓存。

缓存 Blade 图标

如果你未使用 filament:optimize 命令,你可能希望在本地环境中和部署脚本中运行 php artisan icons:cache。这是因为 Filament 使用了 Blade Icons 包,缓存可以大大提升性能。

服务器启用 OPcache

参考 Laravel Forge 文档:

TIP

在生产环境中优化 PHP OPcache 将会配置 OPcache 以在内存中保存编译过的 PHP 代码,来提升性能。

请使用搜索引擎去查询相关 OPcache 设置教程。

优化 Laravel 应用

你也可以考虑在部署脚本中运行 php artisan:optimize 以优化生产环境中的应用。该命令将会缓存配置和路由。

确保资源及时更新

在 Filament 安装过程中,Filament 将 php artisan filament:upgrade 命令添加到了 composer.json 文件的 post-autoload-dump 脚本中。该命令将确保你下载该包时及时更新资源。

我们强烈建议你将此脚本保留在 composer.json 文件中,否则你在生产环境中可能会碰到资源缺失或者过期等问题。不过,如果你一定要移除该命令,请确保部署过程中手动运行该命令。

Edit on GitHub

Still need help? Join our Discord community or open a GitHub discussion