2016-11-09 70 views
2

我设置了一个名为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工作正常,所以我假设的问题是我如何努力去获取变量的值。

+0

#1是要使用的格式。我想知道传入的环境变量是否仅适用于'env'数组。让我们尝试一下:在'www.conf'中,尝试使用'echo getenv('foo');''在FPM conf中确保'clean_env = no',然后在PHP中尝试使用'env [foo] = $ DISPLAY_ERRORS'。那是什么结果? – bishop

+0

你是否在你的用户会话中设置了env var,并期待fpm看到这个? – Maerlyn

+0

@bishop - 当我做你写的东西时,我得到了我在$ DISPLAY_ERRORS环境变量中设置的值。 –

回答

1

我从来没有看到在env[]赋值之外的任何行上使用的传入环境变量。尽管这可能是可行的,但根据实验结果(如OP评论所述),似乎PHP FPM只能在env[]分配期间访问传入环境变量...而不是php_flag或任何其他指令。