Laravel Forge生产环境Meilisearch URL协议缺失报错求助
Laravel Forge部署后MeiliSearch URL Scheme缺失错误解决
本地环境正常,但Laravel Forge部署的生产环境中,使用带有Searchable trait的模型发起POST请求时,出现以下错误:
[2022-11-16 06:06:49] production.ERROR: Invalid URL: scheme is missing in "/indexes/comments/documents/delete-batch". Did you forget to add "http(s)://"? {"userId":1,"exception":"[object]
错误日志显示问题与MeiliSearchEngine相关,推测是索引Searchable模型时触发。当前scout配置如下:
return [ 'driver' => env('SCOUT_DRIVER', 'algolia'), 'prefix' => env('SCOUT_PREFIX', ''), 'queue' => env('SCOUT_QUEUE', false), 'after_commit' => false, 'chunk' => [ 'searchable' => 500, 'unsearchable' => 500, ], 'soft_delete' => false, 'identify' => env('SCOUT_IDENTIFY', false), 'algolia' => [ 'id' => env('ALGOLIA_APP_ID', ''), 'secret' => env('ALGOLIA_SECRET', ''), ], 'meilisearch' => [ 'host' => env('MEILISEARCH_HOST', 'http://127.0.0.1:7700'), 'key' => env('MEILISEARCH_KEY', null), 'settings' => [ \App\Submission::class => [ 'updateFilterableAttributes'=> ['nsfw',], ], ], ], ];
解决步骤
- 检查生产环境的
MEILISEARCH_HOST环境变量,确保值包含完整的HTTP/HTTPS协议头,比如https://your-meilisearch-domain.com或http://127.0.0.1:7700,不能只填域名、IP或端口。 - 确认Laravel Forge的环境变量配置是否同步,避免部署时出现变量遗漏或拼写错误。
- 若使用Forge内置的MeiliSearch服务,主机地址需填写带协议头的完整地址,不要省略
http://或https://。 - 清除生产环境配置缓存,执行命令:
php artisan config:clear php artisan config:cache
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

