运行Composer出现致命错误,请求排查安装缺失内容
问题详情
运行任何Composer命令(如composer --version)时触发以下错误:
Fatal error: require(): Failed opening required 'phar://composer.phar/bin/composer' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /opt/cpanel/composer/bin/composer on line 24
系统环境:
- CentOS v86.0.40
- PHP 5.5(因遗留代码无法升级)
- Composer路径已加入
$PATH:
/usr/local/cpanel/3rdparty/lib/path-bin\ :/usr/local/jdk/bin:/usr/local/cpanel/3rdparty/lib/path-bin\ :/usr/lib64/qt-3.3/bin:/usr/local/cpanel/3rdparty/lib/path-bin\ :/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin\ :/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin\ :/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/opt/bin\ :/opt/cpanel/composer/bin:/usr/local/easy/bin:/usr/local/bin\ :/usr/X11R6/bin:/root/bin\ :/opt/cpanel/composer/bin ## <<< !! SEE HERE !! <<<
目标:通过Composer更新Drupal 8站点。
解决方案
1. 检查composer.phar文件是否存在且路径正确
打开/opt/cpanel/composer/bin/composer脚本,确认第24行的require语句指向的composer.phar路径是否正确。通常该脚本会引用上级目录的composer.phar,执行以下命令验证文件是否存在:
ls -l /opt/cpanel/composer/composer.phar
如果文件不存在,下载适配PHP5.5的Composer 1.x版本(Composer 2.x要求PHP7.2+,无法兼容):
cd /opt/cpanel/composer curl -sS https://getcomposer.org/installer | php -- --version=1.10.26
2. 验证PHP Phar扩展是否启用
PHP5.5默认内置Phar扩展,但可能被禁用。执行以下命令检查状态:
php -i | grep phar
若输出无Phar support => enabled,编辑php.ini文件(通常路径为/usr/local/lib/php.ini或/etc/php.ini):
- 确保
disable_functions中未包含Phar相关函数 - 确认
extension=phar.so未被注释(PHP5.5可能无需手动添加,但被注释则取消注释)
3. 修复文件权限
确保composer.phar和启动脚本具备可读可执行权限:
chmod 644 /opt/cpanel/composer/composer.phar chmod 755 /opt/cpanel/composer/bin/composer
4. 清理重复PATH条目(可选)
你的$PATH中重复出现/opt/cpanel/composer/bin,虽非直接报错原因,但可能导致后续混淆。编辑~/.bashrc或/etc/profile移除重复条目,执行source ~/.bashrc生效。
内容的提问来源于stack exchange,提问作者Webmaster EJNet

