Конфигурация FPM статистика, которую вы можете получить из текущей среды. Однако в ubuntu с использованием Nginx и PHP-FPM я не могу найти способ получить значение переменной из среды. без жесткого кодирования в параметрах php-fpm.conf или nginx fcgi.
Есть ли способ получить переменную среды из / etc / environment или /etc/bash.bashrc?
Например:
clear_env = no
ENV[SECRET_TOKEN] = $SECRET_TOKEN
Я думаю, что основная проблема заключается в том, что невозможно изменить переменные env для www-данных. Так как >sudo -H -u www-data bash -c "env"
не включает в себя SECRET_TOKEN
.
Похоже, единственный способ - добавить env vars вручную.
Я немного изменил код
#!/usr/bin/php
<?php
$confFile = '/etc/nginx/fastcgi_params';
// Update the fpm configuration to make the environment variables available
// NOTE: ONLY in the CLI will $_SERVER have environment variables in it.
$content = file_get_contents($confFile);
$line = false;
foreach ($_SERVER as $name => $val) {
if (strstr($name, 'SYMFONY') !== false) {
$line = "fastcgi_param {$name} {$val};\n";
# Either Add or Reset the variable
if (strstr($content, $name) !== false) {
$content = preg_replace('/fastcgi_param[\s\t]+'.$name.'\][\s\t]+.*?\n/', $line, $content);
echo "MODIFIED {$name}\n";
} else {
$content .= "\n{$line}";
echo "ADDED {$name}\n";
}
}
}
if ($line) {
file_put_contents($confFile, $content);
}