如何在不重新启动 apache 的情况下重新加载站点的 apache 配置?

我已经编辑了 网站启用目录中我的一个网站的变量 允许覆写。如何在不重新启动 Apache 的情况下重新加载新配置?有可能吗?

375937 次浏览

应该可以使用这个命令

sudo /etc/init.d/apache2 reload

希望能帮上忙。

apachectl -k graceful

你可在此网页查阅更多资料: Http://www.electrictoolbox.com/article/apache/restart-apache/

另一种方式是:

sudo service apache2 reload

为 Apache 2.4、非 system (如 CentOS 6.x、 Amazon Linux AMI)和 systemd (如 CentOS 7.x)更新:

有两种方法可以让 apache 进程重新加载配置,这取决于您希望对其当前线程执行什么操作,要么建议在空闲时退出,要么直接终止它们。

注意,Apache 建议使用 apachectl -k作为命令,对于 systemd,该命令由 httpd -k替换

apachectl -k gracefulhttpd -k graceful

Apache 会建议它的线程在空闲时退出,然后 Apache 会重新加载配置(它不会自己退出) ,这意味着统计信息不会重置。

apachectl -k restarthttpd -k restart

这类似于停止,因为进程会杀死它的线程,但随后进程会重新加载配置文件,而不是杀死自己。

资料来源: https://httpd.apache.org/docs/2.4/stopping.html

如果您正在使用 Ubuntu 服务器,则可以使用 systemctl

systemctl reload apache2

这里回答晚了,但是如果你在 /etc/init.d/apache2中搜索 重新装弹,你会发现这样的内容:

do_reload() {
if apache_conftest; then
if ! pidofproc -p $PIDFILE "$DAEMON" > /dev/null 2>&1 ; then
APACHE2_INIT_MESSAGE="Apache2 is not running"
return 2
fi
$APACHE2CTL graceful > /dev/null 2>&1
return $?
else
APACHE2_INIT_MESSAGE="The apache2$DIR_SUFFIX configtest failed. Not doing anything."
return 2
fi
}

基本上,建议使用 init.d、 systemctl 等调用的答案是一个薄包装器,它说:

  • 检查 apache 配置
  • 如果它是好的,运行 apachectl graceful(吞下输出,并转发退出代码)

这表明@Aruman 的答案也是正确的,只要您确信配置中没有错误,或者已经手动运行了 apachctl configtest

Apache 文档还提供了一个优美的重新启动(apachectl -k graceful)相同的命令,以及一些更多的颜色的行为。