Я пытаюсь установить переменные среды в Apache для небольшой дополнительной безопасности и получить к ним доступ с помощью PHP. Я использую SetEnv внутри директивы VirtualHost в httpd.conf. Итак, в httpd.conf у меня есть:
<VirtualHost *:80>
DocumentRoot "/var/www/html"
ServerName "website.com"
ServerAlias "www.website.com"
SetEnv myDatabaseServer myserver.rds.amazonaws.com
SetEnv myPort 3306
SetEnv myUsername Username
SetEnv myPassowrd Password
RewriteEngine on
RewriteCond %{SERVER_NAME} =website.com [OR]
RewriteCond %{SERVER_NAME} =www.website.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Используя файл phpinfo(), я не вижу ни одной из моих переменных окружения в списке, и я также не могу получить к ним доступ в PHP с помощью getenv, поэтому я предполагаю, что они никогда даже не попадут туда. Я всегда обязательно перезапускаю httpd после изменений. Я знаю, что должен упустить что-то маленькое, но мне редко приходится копаться в файлах конфигурации, поэтому я надеюсь, что кто-нибудь может дать мне некоторые идеи или предложения. Это сервер AWS. Не знаю, имеет ли это значение, но доступ к серверу осуществляется по защищенному https. Спасибо за любую помощь!
phpinfo()
не показывает дополнительные переменные, но PHP прекрасно их читает и выводит. - person Tangentially Perpendicular   schedule 07.03.2021.../bin/envvars
(в том же каталоге, что и apachectl). Этот файл загружается, когда вы запускаете apache, настраивая свои переменные. - person Nic3500   schedule 07.03.2021