我正在使用 Apache2 部署 django 应用程序,我已将 apache2 设置为与 apache 不同的用户。问题是,当服务器运行时,用户会发生变化,但主目录环境变量($HOME)仍为 /root。这是为什么?
答案1
我不是 Linux/Unix 内部机制的专家,但我认为改变有效用户 ID 的系统调用不会改变任何环境变量。
仅当执行新进程 exec() 或 spawn() 时(即启动 Apache 时),环境变量才会参与。
您可以编写一个小的包装脚本来将 $HOME 设置为另一个值,然后启动 Apache。如果您使用的是 Debian,则只需修改 /etc/init.d/apache2 即可。