cPanel 如何让我自由选择 vhosts 的 DocumentRoot 而无需重新启动 Apache?

cPanel 如何让我自由选择 vhosts 的 DocumentRoot 而无需重新启动 Apache?

为了避免 Apache 重新启动,动态配置的海量虚拟主机被使用。但是,在这种情况下,Apache 从目录模式中获取 vhost 配置。因此,我不能随意选择与所选模式不匹配的 DocumentRoot 目录。例如,如果我设置了 ...user/www/domain/subdomain 这样的模式,我将必须创建类似该模式的目录以将域/子域添加为 vhost。

但是,cPanel 允许用户自由选择他们添加的附加域和子域的 DocumentRoot。而且,每次进行更改时它都不会重新启动 Apache。更改也是即时的。

cPanel 对 Apache 配置到底做了什么?
我猜想这与动态配置的海量虚拟主机,但经过几天的思考后,我放弃了。你能帮忙吗?

答案1

最后,我找到了解决方案。为了避免重启,我不需要动态配置的海量虚拟主机(首先,以简单的方式思考总是更好的)。Apache 提供了apachectl这项任务。在 Debian 6 上,它的二进制文件/usr/sbin/apachectl默认基于 apt-get 安装。它可能因系统而异。如果您从源代码编译并安装 Apache,它应该在您的控制之下。
假设二进制文件的位置apachectl在您的变量中PATH,则此命令将执行我需要的操作:

apachectl graceful

它重新启动 Web 服务器而不终止与服务器的当前连接。也就是说,它就像重新加载配置文件而不重新启动一样。我不知道 cPanel 究竟是如何做到的,但它确实有效。

相关内容