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

Ubuntu Nginx部署Laravel返回500错误,LoggerInterface语法错误原因咨询

psr/log语法错误触发Laravel 500报错的原因和解决方法

该报错的核心本质是当前运行的PHP版本不支持联合类型语法:| 表示的联合类型是PHP 8.0才正式支持的特性,低于8.0的PHP版本解析到该语法时就会抛出该错误。

可能的诱因

  • CLI PHP版本与FPM版本不一致
    命令行查询到的PHP 8.0.12是CLI模式下的版本,但Nginx转发请求调用的PHP-FPM版本低于8.0,是最常见的触发原因。你可以在站点public目录新建info.php写入<?php phpinfo(); ?>,通过浏览器访问该文件查看web端实际生效的PHP版本,确认是否为8.0系列。
  • psr/log依赖版本与运行环境不匹配
    psr/log 3.0及以上版本明确要求PHP >=8.0,如果你在部署时使用CLI的PHP 8.0执行composer install,会自动安装最新的兼容版psr/log,但web端实际用低于8.0的PHP运行时就会触发语法报错。
  • composer平台配置错误
    如果你在本地开发环境是PHP 8.0,直接将vendor目录同步到服务器,或是composer配置中指定了高于服务器实际运行的PHP版本,也会出现依赖版本和运行环境不兼容的问题。

对应解决方案

  • 修正Nginx的PHP-FPM指向
    确认服务器已安装PHP 8.0-FPM后,修改站点Nginx配置中的fastcgi_pass参数,指向正确的PHP8.0-FPM套接字,示例配置:
fastcgi_pass unix:/run/php/php8.0-fpm.sock;

修改完成后执行sudo systemctl restart nginx php8.0-fpm重启服务即可。

  • 锁定兼容的psr/log版本
    如果暂时无法升级web端PHP版本,可以在composer.json的require段添加"psr/log": "^2.0",psr/log 2.x版本兼容PHP >=7.2,修改完成后执行composer update psr/log更新依赖即可。
  • 锁定composer平台PHP版本
    为避免后续再次出现类似的版本不匹配问题,可以在composer.json的config段添加平台版本锁定配置:
"config": {
    "platform": {
        "php": "8.0.12"
    }
}

后续执行composer相关命令时,会强制按照指定的PHP版本安装兼容的依赖包。

内容的提问来源于stack exchange,提问作者Maha Waqar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:06:03