You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel API部署正式服务器报BusServiceProvider语法错误邮件发送失败

问题根因

该错误是线上服务器PHP版本低于本地环境导致的语法不兼容问题:
你所用的Laravel版本核心代码中使用了PHP 7.3才支持的函数/方法参数末尾尾随逗号语法,PHP 7.2及更低版本无法解析该语法,就会抛出你看到的unexpected ')'语法错误。
数据库更新逻辑能正常执行,是因为DB操作在邮件队列派发逻辑之前,代码执行到邮件发送环节才会触发Laravel Bus服务的加载,此时解析BusServiceProvider.php文件碰到不兼容语法才会触发500错误,所以前面的DB逻辑可以正常跑完。

修复步骤

  • 先验证版本问题:分别在本地和线上服务器执行php -v命令,确认线上PHP版本是否低于7.3
  • 推荐方案:将线上PHP版本升级到和本地环境一致,至少升级到7.4及以上(如果使用Laravel 8+建议升级到8.1及以上,同时安装好Laravel所需的全部扩展如mbstring、fileinfo、redis等)
  • 临时兼容方案:如果暂时无法升级线上PHP版本,可将Laravel版本降级到7.x及以下,该版本核心代码未使用PHP7.3的新语法
  • 版本调整后执行composer install重新安装依赖,重启php-fpm服务和队列worker进程(队列是常驻进程,代码更新后必须重启才会加载新代码)
  • 额外优化:你提供的代码片段存在小隐患,if($pass->telephone) $query_checker = '+233'; 逻辑中如果$pass->telephone为空,$query_checker变量会未定义,后续strpos调用会抛出警告,建议给$query_checker设置默认值避免该问题。

内容的提问来源于stack exchange,提问作者Danso Adjei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:15:03