为了避免 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 究竟是如何做到的,但它确实有效。