参数文件中的互斥锁目录无效:${APACHE_LOCK_DIR}。

大家好,在安装了Ubuntu 16.04之后,使用tasksel lamp apache2命令时遇到了以下错误:
[Mon Jul 18 22:42:00.114578 2016] [core:warn] [pid 4654] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Mon Jul 18 22:42:00.114623 2016] [core:warn] [pid 4654] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Mon Jul 18 22:42:00.114641 2016] [core:warn] [pid 4654] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Mon Jul 18 22:42:00.114645 2016] [core:warn] [pid 4654] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Mon Jul 18 22:42:00.114657 2016] [core:warn] [pid 4654] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Jul 18 22:42:00.133748 2016] [core:warn] [pid 4654] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}

4楼主,请查看下面的回答。我推荐@EnterUserNameHere的那个。对我有用。 - Oliver Williams
3个回答

我曾经遇到过这个问题,以下方法对我起了作用:
source /etc/apache2/envvars 
apache2 -V
sudo service apache2 restart

自从那以后,我就再也没有遇到过这个问题。

考虑到像export APACHE_LOCK_DIR=/var/lock/apache2$SUFFIX这样的行在那个envvars文件中,这完全说得通 :) 如果不是这样的话,可以使用grep命令查找该变量字符串,如果您的Apache配置不同的话。 - Oliver Williams
apache2 -V 给了我一个错误,说虚拟主机配置错误。在使用 a2dissite site.local 命令禁用该虚拟主机后,一切都正常工作了。 - Sadee

看起来你试图通过运行类似以下内容的命令来启动Apache

apache2

那不起作用。请使用

sudo service apache2 start

取而代之。


正确答案非常简单,但并不明显。
在Ubuntu/Debian中,apache2服务在启动时通过apache2ctl restartservice apache2 restart使用环境文件/etc/apache2/envvars
为了成功显示apache2 -V的详细信息,只需加载apache2环境文件即可。
# source /etc/apache2/envvars
# apache2 -V

apache2.conf文件中不应该有任何语法错误,因为第74行显示的环境变量会在apache2启动过程中自动加载。