Я запускаю сайты Drupal (Apache и PHP) и хотел бы установить некоторые значения в файлах настроек как переменные среды. После изучения кажется, что правильный подход заключается в добавлении их в файл /etc/sysconfig/httpd. Похоже, что PHP (mod_php) не загружает переменные.
Мой файл /etc/sysconfig/httpd выглядит так:
LANG=C
db_server=internaldns.mine.com
db_port=3306
memcache_server1=otherinternaldns.mine.com:11211
Я загружаю переменные в Drupal (это php 7 (mod_php)) следующим образом:
$databases['default']['default'] = array (
...
'host' => $_ENV['db_server'],
'port' => $_ENV['db_port'],
...
);
Однако, похоже, он не загружает переменные, так как, когда я делаю статус сайта, я вижу следующее:
Drupal version : 8.9.11
Site URI : http://default
DB driver : mysql
DB port : (THIS SHOULD HAVE THE VARIABLE)
Когда я устанавливаю те же значения без переменных, они работают нормально.
Есть ли какой-то шаг, который мне не хватает здесь для загрузки переменной внутри env?
Всем, кто сталкивался с подобным:
Несмотря на то, что переменные были установлены в файле /etc/sysconfig/httpd, они не импортировались в мою оболочку (но PHP импортировал их правильно).
После создания файла в /etc/profile.d/, который экспортировал переменные для оболочки, он работал и в строке cmd -
#!/bin/bash
# DB Vars
export db_server=db_server
export db_port=3306
В качестве примечания. Несмотря на то, что это выглядело как сбой в строке CMD до того, как эти переменные были экспортированы, веб-сайт успешно обслуживался httpd. Это означало, что PHP правильно использует переменные.