You need to enable JavaScript to run this app. 共享Linux主机升级Composer提示/opt/cpanel/composer/bin/composer无法写入如何解决
优惠活动
大模型
产品
解决方案
定价
更多

共享Linux主机升级Composer提示/opt/cpanel/composer/bin/composer无法写入如何解决

背景

  • 2021年4月27日公开披露Composer存在影响PHP的安全漏洞
  • 官方建议修复方案:升级到Composer 2.0.13版本

服务器环境

  • Linux操作系统
  • 共享虚拟主机

操作步骤及报错信息

步骤1:登录终端查看当前使用的Composer版本

执行命令:
composer -vvv about
返回结果:

Running 2.0.6 (2020-11-07 11:21:17) with PHP 7.3.27 on Linux / 4.19.150-76.ELK.el6.x86_64

步骤2:执行Composer升级命令

执行命令:
composer self-update
返回错误信息:

Upgrading to version 2.0.13 (stable channel).

[Composer\Downloader\FilesystemException]
Filesystem exception:
Composer update failed: "/opt/cpanel/composer/bin/composer" could not be written.
rename(/opt/cpanel/composer/bin/composer): failed to open stream: Read-only file system

self-update [-r|--rollback] [--clean-backups] [--no-progress] [--update-keys] [--stable] [--preview] [--snapshot] [--1] [--2] [--set-channel-only] [--] [< version>]

步骤3:查看目标路径文件权限

执行命令:
ls -l /opt/cpanel/composer/bin/composer
返回结果:

-rwxr-xr-x 1 bin bin 2192976 Nov 10 13:37 /opt/cpanel/composer/bin/composer*

再执行命令:
stat /opt/cpanel/composer/bin/composer
返回结果:

File: `/opt/cpanel/composer/bin/composer'
Size: 2192976 Blocks: 4288 IO Block: 4096 regular file
Device: 801h/2049d Inode: 266192 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 1/ bin) Gid: ( 1/ bin)
Access: 2021-05-02 02:40:36.937400521 -0600
Modify: 2020-11-10 13:37:13.000000000 -0700
Change: 2021-04-14 16:25:27.129945713 -0600


解决方案

本次报错核心原因是共享虚拟主机的全局Composer安装路径为系统只读路径,归属bin用户,普通用户无写入修改权限,无法直接通过self-update命令修改系统级Composer文件,可通过以下两种方案解决:

  1. 联系主机服务商升级全局版本
    共享主机的系统软件由服务商统一维护,直接提交工单说明需要将全局Composer升级到2.0.13及以上版本修复安全漏洞即可,服务商操作完成后可直接使用升级后的全局版本。

  2. 用户目录下安装私有Composer版本
    若服务商响应时效无法满足需求,可自行在个人用户目录下安装独立版本,无需修改系统文件,步骤如下:

  • 进入个人用户家目录:cd ~
  • 下载Composer安装脚本:php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
  • 执行安装指定2.0.13版本:php composer-setup.php --version=2.0.13
  • 删除临时安装脚本:rm composer-setup.php
  • 配置命令别名优先调用本地版本:echo "alias composer='~/composer.phar'" >> ~/.bashrc
  • 加载配置使其立即生效:source ~/.bashrc
  • 验证版本:composer -V,返回2.0.13即为安装成功。

配置完成后,用户名下所有站点执行Composer命令时都会优先调用本地安装的安全版本,不会再触发系统路径权限问题。


内容的提问来源于stack exchange,提问作者Jenny Is Still Learning

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 20:54:03