读取PHP池配置文件中的Linux环境变量
问题描述:
我设置了一个名为DISPLAY_ERRORS
的值为on
的环境变量。读取PHP池配置文件中的Linux环境变量
我想在php-fpm.d/www.conf
中使用这个环境变量,但我找不出合适的语法。以下是我已经试过:
1:
[www]
php_flag[display_errors] = $DISPLAY_ERRORS
2:
[www]
php_flag[display_errors] = $(DISPLAY_ERRORS)
3:
[www]
php_flag[display_errors] = ${DISPLAY_ERRORS}
4:
[www]
php_flag[display_errors] = "${DISPLAY_ERRORS}"
以上都不似乎工作。在任何情况下,我发现了以下错误:
ERROR: [/usr/local/etc/php-fpm.d/www.conf:17] error while parsing 'php_flag[display_errors]' : invalid boolean value
注意 - 我知道,“上”是不是一个布尔值,但是php_flag[display_errors] = on
工作正常,所以我假设的问题是我如何努力去获取变量的值。
答
我从来没有看到在env[]
赋值之外的任何行上使用的传入环境变量。尽管这可能是可行的,但根据实验结果(如OP评论所述),似乎PHP FPM只能在env[]
分配期间访问传入环境变量...而不是php_flag
或任何其他指令。
#1是要使用的格式。我想知道传入的环境变量是否仅适用于'env'数组。让我们尝试一下:在'www.conf'中,尝试使用'echo getenv('foo');''在FPM conf中确保'clean_env = no',然后在PHP中尝试使用'env [foo] = $ DISPLAY_ERRORS'。那是什么结果? – bishop
你是否在你的用户会话中设置了env var,并期待fpm看到这个? – Maerlyn
@bishop - 当我做你写的东西时,我得到了我在$ DISPLAY_ERRORS环境变量中设置的值。 –