Skip to content
全部文档

部署到生产环境

简介

将使用 Filament 的 Laravel 应用部署到生产环境,与部署其他 Laravel 应用类似。不过还有几项额外步骤,以确保面板在性能与安全性上得到优化。

关于本地开发性能的提示,请参阅 优化本地开发

确保用户有权访问面板

当 Filament 检测到应用的 APP_ENV 不是 local 时,会要求你为用户配置授权。这样可确保生产环境中只有授权用户能访问面板,同时本地环境仍易于上手。

要授权用户访问面板,请遵循 用户章节中的指南

WARNING

若不按这些步骤操作,且用户模型未实现 FilamentUser 接口,则生产环境中将无人能登录面板。

提升 Filament 面板性能

为生产环境优化 Filament

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

bash
php artisan filament:optimize

该命令会缓存 Filament 组件,并额外缓存 Blade Icons,可显著提升面板性能。它是 php artisan filament:cache-componentsphp artisan icons:cache 的简写。

要一次性清除这些缓存,可运行:

bash
php artisan filament:optimize-clear

缓存 Filament 组件

若未使用 filament:optimize 命令,可考虑在部署脚本中运行 php artisan filament:cache-components,尤其是在组件数量很多时(资源、页面、小部件、relation manager、自定义 Livewire 组件等)。这会在应用的 bootstrap/cache/filament 目录创建缓存文件,其中包含各类组件的索引。在部分应用中可显著提升 Filament 性能,因为减少了需扫描并自动发现组件的文件数量。

不过,若在本地积极开发应用,应避免使用该命令,因为它会阻止发现任何新组件,直到清除或重建缓存。

可随时运行 php artisan filament:clear-cached-components 清除缓存(不必重建)。

缓存 Blade Icons

若未使用 filament:optimize 命令,可考虑在本地以及部署脚本中运行 php artisan icons:cache。因为 Filament 使用 Blade Icons 包,缓存后性能会好得多。

在服务器上启用 OPcache

要检查 OPcache 是否已启用,运行:

bash
php -r "echo 'opcache.enable => ' . ini_get('opcache.enable') . PHP_EOL;"

应看到 opcache.enable => 1。若没有,在 php.ini 中加入以下行以启用:

ini
opcache.enable=1 # Enable OPcache

TIP

为生产环境优化 PHP OPcache,会将已编译的 PHP 代码存入内存,从而大幅提升性能。

请用搜索引擎查找适用于你环境的 OPcache 配置说明。

优化 Laravel 应用

还应考虑在部署脚本中运行 php artisan optimize,为生产环境优化 Laravel 应用。这会缓存配置文件与路由。

确保资源文件是最新的

Filament 安装过程中,会把 php artisan filament:upgrade 命令加入 composer.jsonpost-autoload-dump 脚本。该命令会在你下载包时确保资源文件保持最新。

强烈建议将该脚本保留在 composer.json 中,否则生产环境可能出现资源缺失或过时。若必须移除,请确保在部署流程中手动运行该命令。