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

Azure DevOps构建流水线传递UserStory参数至PHP脚本失败排查

解决Azure DevOps流水线参数传递到PHP脚本的问题

错误原因分析

  • 参数引用语法错误:Azure DevOps中流水线参数需用${{ parameters.参数名 }}语法引用,你误用了变量的$(参数名)写法,导致bash把UserStory识别成命令,触发"command not found"错误。
  • 环境变量命名不匹配:脚本里导出的环境变量是USER_STORY,但PHP代码里尝试读取User_Story,大小写和下划线位置不一致,导致无法获取值。

修复后的YAML配置

修改Run index.php with user story ID步骤的脚本部分,正确引用参数并导出匹配的环境变量:

trigger:
- main

pool:
  vmImage: ubuntu-latest

variables:
  phpVersion: 8.1

parameters:
  - name: UserStory
    displayName: Enter User Story ID.
    type: string
    default: ''

steps:
- script: |
    sudo update-alternatives --set php /usr/bin/php$(phpVersion)
    php -version
  displayName: 'Use PHP version $(phpVersion)'

- script: |
    echo "Running script for user story number ${{ parameters.UserStory }}"
    export USER_STORY="${{ parameters.UserStory }}"
    ls -la
    php index.php
  displayName: 'Run index.php with user story ID'

修复后的PHP代码

调整getenv的参数,匹配导出的环境变量名:

<html>
 <head>
   <title>PHP Test</title>
 </head>
 <body>
 <?php 
   $user_story1 = getenv('USER_STORY');
   echo '<p>Hello World</p>'; 
   echo "<p>User Story Number: $user_story1</p>";
 ?> 
 </body>
</html>

验证效果

修复后运行流水线:

  • 输入User Story ID后,bash脚本会正确输出该ID,不再出现"command not found"错误。
  • PHP脚本会成功读取到USER_STORY环境变量的值并显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 14:59:49