Laravel10/Filament本地部署Octane遇'config类不存在'问题求助
问题解决指南:Laravel Octane + OpenSwoole 在 Filament 项目中的正确配置与性能说明
一、Octane 能否提升该项目性能?
能。Octane 配合 OpenSwoole 会将 Laravel 框架及依赖常驻内存,避免每次请求重新加载核心文件,对于 Laravel + Filament(基于 Livewire)的项目,能显著降低请求响应时间、提升并发处理能力,无论开发还是生产环境都能获得明显性能收益。
二、访问虚拟主机地址无性能提升的解决方法
当前访问 http://local-quizzes.com 仍走 Apache 默认的 PHP-FPM 流程,未转发到 Octane 的 Swoole 服务,需配置 Apache 反向代理:
- 编辑虚拟主机配置文件(路径通常为
/etc/apache2/sites-available/local-quizzes.com.conf) - 在
<VirtualHost *:80>块内添加反向代理规则:ProxyPass / http://local-quizzes.com:8002/ ProxyPassReverse / http://local-quizzes.com:8002/ - 启用并重启 Apache 服务:
sudo a2enmod proxy proxy_http sudo systemctl restart apache2
配置完成后,访问 http://local-quizzes.com 会直接转发到 Octane 服务,即可看到性能提升。
三、「Target class [config] does not exist」错误的修复步骤
该错误源于 Octane 常驻内存环境下,部分核心服务(如 config)或依赖包(Carbon、Livewire)未正确初始化,按以下步骤排查:
- 调整 Octane 预加载配置
编辑config/octane.php,在warm数组中添加必要服务,确保核心依赖被预加载:'warm' => [ \Illuminate\Contracts\Config\Repository::class, \Livewire\Livewire::class, ], - 清除缓存并重启 Octane
php artisan cache:clear php artisan octane:stop php artisan octane:start --server=swoole --host=local-quizzes.com --port=8002 --watch - 确认依赖版本兼容性
检查composer.json中 Livewire 版本为 v3.x(Laravel 10 及 Filament 3.2 要求的兼容版本),若版本不符,执行更新:composer update livewire/livewire - 安装必要扩展
开发环境下的--watch参数依赖 inotify 扩展,确保已安装:sudo apt install php8.2-inotify
四、正确运行项目的完整流程
- 完成上述 Apache 反向代理配置
- 调整
config/octane.php的预加载服务列表 - 清除缓存并启动 Octane:
php artisan octane:start --server=swoole --host=local-quizzes.com --port=8002 --watch - 访问
http://local-quizzes.com即可通过 Octane 运行项目
内容的提问来源于stack exchange,提问作者mstdmstd
相关产品推荐
相关产品推荐

