执行composer install后PHP版本检测不符问题求解
问题描述
已多次尝试解决该问题但均未成功,参考相关Stack Overflow帖子也无济于事。测试服务器报错信息如下:
Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.2". You are running 7.4.23. in /home/vagrant/code/interproindigo/vendor/composer/platform_check.php on line 24
但执行php -v时显示的PHP版本为8.0.9:
PHP 8.0.9 (cli) (built: Jul 30 2021 13:03:39) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.0.9, Copyright (c) Zend Technologies with Zend OPcache v8.0.9, Copyright (c), by Zend Technologies
解决方案
核心问题是CLI环境和Web服务器使用的PHP版本不一致,按以下步骤排查修复:
确认Web服务器实际运行的PHP版本
项目根目录新建phpinfo.php文件,内容:<?php phpinfo(); ?>通过浏览器访问该文件,查看页面顶部的PHP版本,确认是否为7.4.23。
切换Web服务器的PHP版本
- 若使用Apache:
- 禁用PHP7.4模块:
sudo a2dismod php7.4 - 启用PHP8.0模块:
sudo a2enmod php8.0 - 重启Apache服务:
sudo systemctl restart apache2
- 禁用PHP7.4模块:
- 若使用Nginx:
- 找到Nginx站点配置文件(通常在
/etc/nginx/sites-available/目录下),修改fastcgi_pass配置项为PHP8.0的socket路径,例如:fastcgi_pass unix:/run/php/php8.0-fpm.sock; - 重启Nginx和PHP-FPM服务:
sudo systemctl restart nginx php8.0-fpm
- 找到Nginx站点配置文件(通常在
- 若使用Apache:
验证Composer的PHP版本匹配
执行composer diagnose命令,查看输出中的PHP版本是否为8.0.9。若Composer仍调用旧版本PHP,可直接指定PHP路径执行Composer命令,例如:/usr/bin/php8.0 composer install临时绕过平台检查(不推荐长期使用)
若需临时测试项目,可执行:composer install --ignore-platform-reqs但此方法仅为临时方案,长期需保证Web环境与CLI环境PHP版本一致,避免依赖兼容问题。
内容的提问来源于stack exchange,提问作者Bolt
相关产品推荐
相关产品推荐

