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

Linux AMI EC2服务器安装Composer报错:无法写入keys.dev.pub至指定路径

解决AWS Linux AMI EC2上Composer安装失败的问题

我之前在AWS Linux AMI的EC2实例上也碰到过类似的Composer安装卡壳的情况,给你几个实用的排查和解决思路,应该能帮你搞定:

  • 先确认PHP环境是否达标
    Composer对PHP版本和扩展有明确要求,先跑这两个命令检查:

    • 查看PHP版本:php -v,确保是7.2.5及以上版本,如果版本太低,得先升级PHP(Amazon Linux可以用sudo yum install php7.4这类命令,根据需求选择对应版本)
    • 检查必备扩展:php -m,确认列表里包含json、ctype、curl、mbstring这些,缺哪个就用yum安装,比如sudo yum install php-curl php-mbstring
  • 别用chmod 777这种危险操作,先修复目录权限
    给/home/ec2-user开777权限不仅严重不安全,还可能触发系统的权限检查异常,先把权限改回安全状态:

    sudo chmod 755 /home/ec2-user
    sudo chown -R ec2-user:ec2-user /home/ec2-user
    
  • 严格按官方步骤重新执行安装脚本
    有时候下载的安装脚本可能损坏,或者之前的步骤有遗漏,重新走一遍官方标准流程:

    1. 下载官方安装脚本:
      php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
      
    2. 验证脚本完整性(这步别跳过,避免安装恶意或损坏的文件):
      php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
      
      如果显示“Installer verified”再继续,否则重新下载脚本。
    3. 全局安装Composer(这样任何目录都能直接用composer命令):
      sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
      
    4. 验证安装:composer --version,如果能正常显示版本号就说明安装成功了。
  • 手动创建.composer目录并设置正确权限
    虽然你说主目录里没有这个目录,但安装过程中Composer需要它来存储缓存和配置文件,手动创建并锁好权限:

    mkdir ~/.composer
    chmod 700 ~/.composer
    

    700权限意味着只有当前用户(ec2-user)能访问这个目录,既安全又能满足Composer的运行需求。

  • 排查SELinux的限制
    Amazon Linux默认开启SELinux,它可能会阻止Composer的一些操作,你可以先临时关闭测试:

    sudo setenforce 0
    

    然后再试安装,如果这次成功了,说明是SELinux的问题。永久解决的话,不用直接关闭SELinux,修复目录的安全上下文即可:

    sudo restorecon -Rv /home/ec2-user
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:30:53