SaltStack使用ini.options_present修改php.ini时区报无效参数错误
问题根因
报错核心是YAML缩进层级错误:你写的配置里Date的缩进和sections、separator同级,Salt解析state时会把这个层级的键都识别为ini.options_present的直接传入参数,但该状态模块根本没有名为Date的入参,因此触发非法参数报错。
正确配置示例
调整sections下子键的缩进,保证段落名是sections字典的内部键即可:
# set timezone in php.ini /etc/php.ini: ini.options_present: - separator: '=' - sections: Date: date.timezone: 'America/Chicago'
补充说明
- YAML对缩进敏感度极高,同一层级的键必须保持缩进对齐,子级键必须比父级键多缩进固定数量的空格(推荐统一用2空格缩进)
- 配置生效后,原php.ini中[Date]段落下被注释的
;date.timezone =行会被自动替换为未注释的正确配置,不需要额外写规则处理注释行 - 配置完成后可通过
php -i | grep date.timezone验证配置是否生效
内容的提问来源于stack exchange,提问作者Newt
相关产品推荐
相关产品推荐

