Я прочитал вопрос/ответы здесь, но я не понимаю, как устанавливать переменные в /etc/environment. Если я отредактирую файл, мне нужно перезагрузить машину или просто выйти из текущего пользователя (или войти в новый?).
Я хочу установить глобальную переменную для обозначения того, что веб-сайты на моей машине находятся в режиме разработки или тестирования. Я не хочу устанавливать это для каждого проекта (использует ли он PHP, Java/Tomcat, NodeJS и т.д.). Я знаю, что (для Apache) я могу установить переменную окружения следующими способами:
- напрямую с php с
putenv()
(это кажется бесполезным, поскольку я хочу избежать логики, которая пытается выяснить, на каком сервере находятся файлы) - с использованием .htaccess
SetEnv ENVIRONMENT 'local'
(это потребовало бы, чтобы я дублировал этот файл/код для каждого сервера, а не идеально) - с помощью директивы Virtual Host
SetEnv ENVIRONMENT 'local'
(если я использую виртуальный хост, который почти во всех случаях я есть, но снова требует, чтобы я копировал/вставлял код снова и снова) - в httpd-conf
SetEnv ENVIRONMENT 'local'
(это применимо только к apache, и я хотел бы, чтобы он также обращался к серверам NodeJS)
Я не говорю, что я не могу сделать # 4 (и применять # 3 выборочно к серверам NodeJS). Но я думаю, что это хорошая причина для использования /etc/environment. Как я уже говорил выше, я редактировал файл (после его первого создания) и пробовал следующие комбинации: ни один из них не работал:
ENVIRONMENT='local'
ENVIRONMENT=local
export ENVIRONMENT='local'
export ENVIRONMENT=local
Я говорю, что никто из них не работал, потому что я не нашел переменную на выходе из:
print_r($_SERVER);
print_r($_ENV);
echo(getenv('ENVIRONMENT'));