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

CodeQL配置PHP代码扫描报错:无法识别PHP语言,求排查解决

解决CodeQL工作流中“无法识别以下语言:php”的错误

常见错误原因及修复方案

1. 语言标识符拼写错误

CodeQL对语言名称的大小写严格敏感,PHP对应的唯一有效标识符是小写的php。若工作流中写成PHP、Php或php7这类格式,就会触发无法识别的错误。

  • 检查codeql-action/init步骤的languages参数,以及矩阵中的language值,确保统一使用小写php。
  • 错误示例:
    - uses: github/codeql-action/init@v2
      with:
        languages: PHP
    
  • 正确示例:
    - uses: github/codeql-action/init@v2
      with:
        languages: php
    

2. 矩阵配置包含无效语言项

若工作流的矩阵中同时指定多个语言,其中混入拼写错误或CodeQL不支持的语言,会导致整体语言识别失败。比如矩阵中写了[python, PHP, javascript],其中PHP为无效项,改成小写php即可。

3. CodeQL Action版本过旧

旧版本的CodeQL Action可能对PHP的支持存在兼容性问题,或语言标识符规则不同。建议使用最新稳定版的Action,比如固定版本@v2(或具体版本号如@v2.22.0),避免使用过时版本。

4. 未指定PHP代码路径(少见场景)

若PHP代码不在仓库根目录,CodeQL可能无法自动检测到代码,进而误判语言不存在。可在codeql-action/init步骤中添加paths参数指定代码目录:

- uses: github/codeql-action/init@v2
  with:
    languages: php
    paths: ./src/php

完整的正确工作流示例

name: "CodeQL PHP Analysis"

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  schedule:
    - cron: '30 1 * * 0'

jobs:
  analyze:
    name: Analyze PHP Code
    runs-on: ubuntu-latest
    permissions:
      actions: read
      contents: read
      security-events: write

    strategy:
      fail-fast: false
      matrix:
        language: [ 'php' ]

    steps:
    - name: Checkout Repository
      uses: actions/checkout@v4

    - name: Initialize CodeQL
      uses: github/codeql-action/init@v2
      with:
        languages: ${{ matrix.language }}

    - name: Autobuild PHP Project
      uses: github/codeql-action/autobuild@v2

    - name: Run CodeQL Analysis
      uses: github/codeql-action/analyze@v2

内容的提问来源于stack exchange,提问作者Luciano Nahuel Gimenez Ausfet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 00:44:57