无法重新启动 Apache,出现错误:apache2: bad user name ${APACHE_RUN_USER}

Ray*_*Ray 7 apache2

我在尝试重新启动 Apache 时遇到此错误,有人知道如何解决此问题吗?谢谢,

小智 9

要解决此问题,您必须对两个单独的文件进行更改。

首先,编辑/etc/apache2/apache2.conf,添加这些行:

User www-data
Group www-data
Run Code Online (Sandbox Code Playgroud)

其次,编辑/etc/apache2/envvars,添加这些行:

export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
Run Code Online (Sandbox Code Playgroud)

  • 第一个块可能会继续引用环境变量;关键的一步是在`/etc/apache2/envvars` 中定义它们! (3认同)

Hen*_*nry 5

这将为当前会话设置您的 apache2 ENV 变量,并允许您使用 apache2 二进制文件而无需修改您的配置:

source /etc/apache2/envvars
Run Code Online (Sandbox Code Playgroud)

/etc/apache2/envvars

只是一个设置一些环境变量的脚本。当您使用 apachectl 时,它会在启动 apache2 本身之前进行处理。如果您想从终端调用 apache2,您还需要这些变量。

因此,调用source /etc/apache2/envvars设置了允许 apache2 在 apachectl 之外工作的变量。

您可以通过多种其他方式进行设置。例如,在您登录时调用 envvars。


小智 3

就我而言,通过重新启动机器,错误消失了(我刚刚安装了 apache2),并且我能够发出命令sudo /etc/init.d/apache2 restart并重新启动 apache2。


Ave*_*han 2

临时修复(我使用的)是编辑/etc/apache2/apache2.conf. 寻找这个:

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
Run Code Online (Sandbox Code Playgroud)

并将其更改为:

User www-data
Group www-data
Run Code Online (Sandbox Code Playgroud)

无论出于何种原因,apache2 都没有寻找envvars适当的环境变量。对于为什么会发生这种情况,真正的答案是找出为什么envvars没有被咨询。