将使用 Filament 的 Laravel 应用部署到生产环境与部署任何其他 Laravel 应用类似. 然而, 你应该采取一些额外的步骤来确保你的 Filament 面板在性能和安全性方面得到优化.
有关侧重于本地开发性能的提示,请参阅 优化本地开发。
当 Filament 检测到你的应用的 APP_ENV 不是 local,它会要求你为用户设置授权。这是为了确保只有授权用户才能在生产环境中访问你的 Filament 面板,同时保持本地环境易于上手。
为了授权用户访问面板,您应该遵循用户章节中的指南。
如果你不遵循这些步骤并且你的用户模型没有实现 FilamentUser 接口,则任何用户都无法在生产环境中登录你的面板。
为了优化 Filament 以用于生产环境,你应该在你的部署脚本中运行以下命令:
php artisan filament:optimize此命令将 缓存 Filament 组件 并额外缓存 Blade 图标,这可以显著提高您的 Filament 面板的性能。 此命令是以下命令的简写 php artisan filament:cache-components 和 php artisan icons:cache。
要一次性清除缓存,你可以运行:
php artisan filament:optimize-clear如果你没有使用 filament:optimize 命令,你可能需要考虑运行 php artisan filament:cache-components 在你的部署脚本中,特别是当你的组件数量庞大时 (资源、页面、小组件、关系管理器、自定义 Livewire 组件等)。这将在你的应用的 bootstrap/cache/filament 目录下创建缓存文件,这些文件包含每种组件的索引。这可以显著提高 Filament 在某些应用中的性能,因为它减少了需要扫描和自动发现组件的文件数量。
然而,如果您正在本地积极开发您的应用,您应该避免使用此命令,因为它将阻止发现任何新组件,直到缓存被清除或重建。
您可以随时清除缓存而无需通过运行 php artisan filament:clear-cached-components 来重建。
如果您未使用 [filament:optimize 命令](#optimizing-filament-for-production), 您可能希望考虑在本地运行 php artisan icons:cache,并在您的部署脚本中也运行。这是因为 Filament 使用了 Blade 图标 包,该包在缓存时性能会大大提高。
要检查 OPcache 是否已启用,运行:
php -r "echo 'opcache.enable => ' . ini_get('opcache.enable') . PHP_EOL;"您应该会看到 opcache.enable => 1。如果没有,请通过将以下行添加到您的 php.ini:
opcache.enable=1 # Enable OPcache引自 Laravel Forge 文档:
优化生产环境的 PHP OPcache 将配置 OPcache 在内存中存储您编译的 PHP 代码以大幅提升性能。
请使用搜索引擎查找适用于您环境的相关 OPcache 设置说明。
您还应该考虑通过在部署脚本中运行 php artisan optimize 来为生产环境优化您的 Laravel 应用。 这将缓存配置文件和路由。
在 Filament 安装过程中,Filament 会将 php artisan filament:upgrade 命令添加到 composer.json 文件中,在 post-autoload-dump 脚本中。此命令将确保每当您下载该软件包时,您的资产都是最新的。
我们强烈建议此脚本保留在您的 composer.json 文件中,否则您可能会在生产环境中遇到缺少或过时的资产问题。但是,如果您必须将其删除,请确保在部署过程中手动运行该命令。