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

DigitalOcean Laravel项目Composer PHP版本报错求解

问题背景

在DigitalOcean服务器部署Laravel 8项目时触发报错:

Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.2"

当前环境基础信息:

  • CLI端PHP版本:8.1.7
  • Composer版本:2.3.7
  • 已完成storage目录写入权限配置

出现报错后已依次执行以下常规排查操作,问题未解决:

  • php artisan key:generate
  • php artisan cache:clear
  • php artisan config:clear
  • rm -rf app/storage/logs/laravel.logs
  • php artisan cache:clear
  • composer dump-autoload
问题根因

该报错和Laravel缓存、密钥配置、日志文件权限无关,核心触发原因只有两类:

  1. 终端CLI运行的PHP版本和Web服务(Nginx/Apache)实际调用的PHP-FPM版本不一致,Web端加载的PHP版本低于8.0.2,触发Composer平台校验拦截
  2. 项目的vendor目录是在PHP版本<8.0.2的环境中生成后,直接拷贝上传到当前服务器,平台校验缓存未更新
解决步骤

第一步:确认Web端实际PHP版本

在站点根目录新建临时文件phpinfo.php,写入如下内容:

<?php phpinfo();

通过浏览器访问该文件,查看页面显示的PHP版本:

  • 若版本低于8.0.2,修改站点对应的Web服务配置,将PHP解析版本切换为已安装的8.1版本,修改完成后执行对应命令重启服务:
    • Debian/Ubuntu环境:
      systemctl restart php8.1-fpm
      systemctl restart nginx
      
    • CentOS/RHEL环境:
      systemctl restart php-fpm
      systemctl restart httpd
      
  • 校验完成后立即删除phpinfo.php文件,避免泄露服务器敏感配置。

第二步:重新在当前服务器环境生成依赖

如果确认Web端PHP版本为8.1+,直接删除原有依赖目录和锁文件,重新安装依赖即可:

rm -rf vendor
rm -f composer.lock
composer install --no-dev --optimize-autoloader

注意:禁止使用--ignore-platform-req=php参数跳过平台版本校验,该操作会掩盖真实版本问题,后续运行会出现随机兼容报错。

第三步:排查PHP配置异常

如果上述两步操作后问题仍存在,执行php --ini命令查看PHP加载的所有配置文件路径,逐一检查配置中是否存在强制覆盖PHP_VERSION常量、open_basedir路径拦截类异常配置,修正后重启PHP服务即可。

内容的提问来源于stack exchange,提问作者Jitumani Bhagabati

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:09:16