我正在运行Drush Make作为Cloudbees Jenkins工作的一部分。它经常抛出这样的错误:
您必需使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们现在选择了时区'UTC',但请设置date.timezone以选择您的时区。
我不明白为什么会这样 - 我根据Cloudbees文档的建议在第一个构建步骤中明确设置了时区:
#!/bin/bash
mkdir -p /tmp/php
echo "date.timezone = America/Chicago" > /tmp/php/php.ini
export PHPRC=/tmp/php
php -i
这将输出以下内容,确认时区已设置。
日期
日期/时间支持=>启用 “Olson”时区数据库版本=> 0.system 时区数据库=>内部 默认时区=>美国/芝加哥
指令=>本地值=>掌握价值 date.timezone => America / Chicago =>美国/芝加哥
那么为什么PHP仍然会在Drush Make步骤中抱怨?
答案 0 :(得分:0)
Jenkins将每个构建步骤作为单独的bash脚本执行,这意味着在第一个构建步骤中导出的环境变量在后续构建步骤中不可用。
解决方案是使用Environment Injector Jenkins插件设置环境变量,以便在作业持续时间内设置。