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

GitHub Actions中Composer安装失败:PHP版本约束不匹配求助

解决GitHub Actions中PHP版本切换不生效的问题

我之前也碰到过类似的情况,问题出在你使用的php-actions/composer这个Action上——它是运行在独立容器里的,默认不会继承你通过shivammathur/setup-php配置好的主机PHP环境,所以才会一直用它自己默认的7.4版本,导致composer检测到版本不满足约束。

这里有两种可行的解决方案:

方案一:直接使用主机环境的Composer

放弃php-actions/composer,改用主机上已经配置好的PHP和Composer来执行安装命令,这样就能确保使用的是你指定的7.3版本:

修正后的工作流配置:

name: Run Tests
on:
  pull_request:
    branches:
      - master
jobs:
  build:
    runs-on: ${{ matrix.operating-system }}
    strategy:
      matrix:
        operating-system: [ubuntu-latest]
        php-versions: ['7.3']
    steps:
      - uses: actions/checkout@v2
      - uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-versions }}
          # 可选:如果需要指定composer版本,可以加上这行
          # composer-version: '2.x'
      - name: Install Composer dependencies
        run: composer install --prefer-dist --no-progress --no-suggest
      - uses: php-actions/phpunit@v8

方案二:给php-actions/composer指定PHP版本

如果你坚持要用php-actions/composer,可以直接给它传递php-version参数,让它使用和你matrix中一致的版本:

修正后的工作流配置:

name: Run Tests
on:
  pull_request:
    branches:
      - master
jobs:
  build:
    runs-on: ${{ matrix.operating-system }}
    strategy:
      matrix:
        operating-system: [ubuntu-latest]
        php-versions: ['7.3']
    steps:
      - uses: actions/checkout@v2
      - uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-versions }}
      - uses: php-actions/composer@v2
        with:
          php-version: ${{ matrix.php-versions }}
      - uses: php-actions/phpunit@v8

额外验证步骤(可选)

为了确认PHP版本确实切换成功,你可以在setup-php之后加一个步骤输出当前PHP版本:

- name: Verify PHP version
  run: php -v

这样就能直观看到当前环境使用的PHP版本是否符合预期,方便排查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 12:17:38