
Я использую Apache2 для развертывания приложения django, я установил apache2 для другого пользователя, чем apache. Проблема в том, что когда сервер запускается, пользователь меняется, но переменная среды домашнего каталога ($HOME) остается /root. Почему так?
решение1
Я не эксперт по внутренним устройствам Linux/Unix, но думаю, что системный вызов, который изменяет эффективный идентификатор пользователя, не изменяет никаких переменных окружения.
Переменные среды будут задействованы только в случае, если выполняется exec() или spawn() новый процесс, т. е. при запуске Apache.
Вы можете написать небольшой скрипт-обертку, чтобы установить $HOME на другое значение, а затем запустить Apache. Если вы используете Debian, вы можете просто изменить /etc/init.d/apache2.