Моя конфигурация nginx имеет следующий вид
location ~* \.(php)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
fastcgi_params
имеет переменную DB_PASSWORD
.
И я могу получить значение этой переменной, запустив php-скрипт в браузере через $_SERVER['DB_PASSWORD']
, но если я запускаю консольный скрипт, например
./yii migrate/up
То этих переменных $_SERVER
уже не содержит. Как их туда пробросить?
Использую php-fpm
Пробросить fastcgi_params в консольный скрипт невозможно.
FastCGI - интерфейс между веб-сервером и PHP. Путь такой: переменная из конфига => протокол FastCGI => PHP интерпретатор разбирает запрос по протоколу (см также variables_order) => глобальная переменная в вашем PHP-скрипте.
Консольный скрипт запускает интерпретатор по CLI SAPI (php cli
). FastCGI тут не используется, так как запуск из командной строки, и веб-сервер не принимает ни какого участия. Также php cli
имеет собственный php.ini
файл, поэтому конфигурация у него отдельная. Узнать ее можно так: php --ini
Если вам нужны переменные в php-cli - используйте окружение.
DB_PASSWORD=password php {ваш скрипт}.php
export DB_PASSWORD=password
php {ваш скрипт}.php
Нужно отредактировать /etc/environment
, изменения будут видны после перезапуска службы (для пользователя - перелогиниться). Для передачи пароля этот способ плохой по безопасности: виден всем.
Если используется Docker, в Dockerfile
возможно записать ENV DB_PASSWORD=password
, или передать из командной строки при старте:
docker run ... -e DB_PASSWORD=password ...
Доступ в PHP
Внутри скрипта будет доступно:
var_dump($_SERVER['DB_PASSWORD']);
var_dump(getenv('DB_PASSWORD'));
PS. Узнать какой SAPI используется можно через php_sapi_name().
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Всем доброго времени суток Использую парсера Simple html dom, для парсинга
Разработал парсер, который парсит обменники от 50 до 150 сайтовНа каждом сайта XML с данными ( валюты, курсы, прибыль, резерв, и т