Laravel 5.6+cPanel+Composer报错:已装PHP7.2却仍用PHP5.6
解决Composer在cPanel沙箱中使用PHP5.6而非指定PHP7.2的问题
看起来你遇到的核心问题是Composer没有识别到你设置的PHP别名——毕竟别名(alias)只在交互式Shell中生效,而Composer作为子进程运行时不会继承这个配置。结合你的环境信息,我整理了几个可行的解决方案:
1. 临时指定PHP路径运行Composer
直接用你指定的PHP7.2二进制文件来执行Composer命令,强制它使用PHP7.2。首先确认Composer的安装路径:
which composer
假设返回路径是/usr/bin/composer,那么Laravel项目创建命令可以这么写:
/usr/local/bin/ea-php72 /usr/bin/composer create-project laravel/laravel=5.6.* your-project-name
如果是已有的项目,执行依赖安装:
/usr/local/bin/ea-php72 /usr/bin/composer install
2. 永久配置Composer使用PHP7.2
通过设置环境变量让Composer默认绑定指定的PHP版本:
- 编辑你的Shell配置文件(比如
~/.bashrc或~/.bash_profile),添加以下内容:
export COMPOSER_PHP_BINARY=/usr/local/bin/ea-php72
- 保存后让配置立即生效:
source ~/.bashrc
之后再直接运行composer命令,就会自动使用PHP7.2了。
3. 升级Composer到新版本
你的Composer版本是1.1.1(2016年的旧版本),它对高版本PHP的兼容性和版本检测逻辑都比较陈旧。用PHP7.2来升级Composer:
/usr/local/bin/ea-php72 /usr/bin/composer self-update
升级后不仅能解决PHP版本识别问题,还能获得更多功能和安全修复。
4. 检查cPanel的全局PHP CLI设置
有些cPanel环境中,网页端PHP版本和CLI版本是分开配置的:
- 登录cPanel,找到MultiPHP Manager或Select PHP Version
- 确认CLI版本是否设置为7.2(部分cPanel需要在“Options”或“Advanced”选项中切换CLI版本)
配置完成后,系统默认的PHP CLI就会是7.2,Composer也会自动使用它。
内容的提问来源于stack exchange,提问作者Kevin Pimentel
相关产品推荐
相关产品推荐

