LINUX.ORG.RU
ФорумAdmin

Получение переменных из /etc/environment в php7.1-fpm

 , ,


0

1

Задача такая: Получить при выполнении php скрипта значения переменных в /etc/environment.

Я возможно до конца не понимаю суть переменных окружения, направьте в нужно русло.

В /etc/environment прописана команда:

export DBPASSWORD=`aws ssm get-parameters --name DBpassword --region us-east-1 --with-decryption --output text --query Parameters[].Value`

aws это пакет, получающий значения из parametr store на амазоне.

Система Ubuntu 16.04

В /etc/php/7.1/fpm/pool.d/www.conf Прописано «clear_env = no»

Команда echo $DBPASSWORD из под юзера ubuntu отрабатывает нормально, из консоли вот это:

php -r "@var_dump(\$_SERVER['DBPASSWORD']);"

тоже показывает нужный результат.

Но если в файле от php пытаемся получить значение, то возвращает пустоту.

/etc/environment читается процессами, завязаными на PAM. То, что вы отключили очистку переменных среды, не значит, что php-fpm полезет читать этот файл.

Вроде бы, php-fpm может работать с PAM, хотя, возможно его для этого нужно будет перекомпилить... Но я не уверен, что это вобще правильный путь

mky ★★★★★ ()
Ответ на: комментарий от mky

У меня симлинк лежит на /etc/environment тут /etc/default/php7.1-fpm

По сути, перед стартом он должен делать source данного файла.

Какие бы варианты посоветовали в моём случае?

d0br0t4 ()
Ответ на: комментарий от d0br0t4

Вроде, у вас там systmed, уверены, что /etc/default/php7.1-fpm кто-то читает?

Я не знаю правильный путь, может у вас просто какой-то баг и просто не воспринимается ″clear_env = no″. Но, читать переменные среды скриптом, запускающим php-fpm, — это примерно то же, что этим скриптом править конфиг php (заносить туда env[DBPASSWORD]=...).

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.