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

GitHub Action SSH部署IONOS主机Symfony项目报composer.phar错误

GitHub Action部署Symfony至IONOS主机composer命令报错修复

问题表现

  • SSH连接IONOS主机正常,git pull、数据库迁移命令可成功执行
  • 完成Composer环境配置后,CI流程执行composer相关命令返回错误:Could not open input file: composer.phar
  • 原有工作流配置:
name: CD
on:
  push:
    branches: [ develop ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: SSH and Deploy
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.APP_HOST }}
          username: ${{ secrets.APP_USER }}
          password: ${{ secrets.APP_PASS }}
          port: 22
          script: |
            cd /homepages/14/d800745077/htdocs/clickandbuilds/dashJob
            git pull
            /usr/bin/php8.0-cli composer.phar i
            /usr/bin/php8.0-cli bin/console d:m:m -n

故障原因

非交互式SSH执行远程命令时,不会默认加载用户目录下的.bashrc、.profile等环境配置文件;且执行命令前已切换到项目目录,直接调用相对路径的composer.phar时,系统无法在当前项目目录下找到对应文件,触发报错。

修复方案

优先使用绝对路径指定composer.phar位置,无需额外加载环境配置,稳定性更高:

  1. 先手动SSH登录IONOS主机,执行find ~ -name "composer.phar"获取composer.phar的实际存放路径,IONOS默认安装路径通常为用户根目录~/composer.phar
  2. 修改工作流脚本中的composer执行命令,替换为绝对路径,同时加上生产环境推荐参数避免流程卡住:
script: |
  cd /homepages/14/d800745077/htdocs/clickandbuilds/dashJob
  git pull
  # 替换为你查到的composer.phar实际绝对路径
  /usr/bin/php8.0-cli ~/composer.phar install --no-dev --optimize-autoloader -n
  /usr/bin/php8.0-cli bin/console d:m:m -n

如果composer.phar确实存放在项目目录下,执行命令前先确认文件权限:

  • 手动SSH到项目目录执行ls -l composer.phar,若没有执行权限,执行chmod +x composer.phar添加权限
  • 若仍无法识别,可在脚本开头加source ~/.bashrc显式加载用户环境配置后再执行后续命令

注意:部署脚本中所有需要交互的命令都要加-n参数启用非交互模式,避免CI流程因等待输入挂起。


内容的提问来源于stack exchange,提问作者Clément Pageaux

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:48:27