PHPdynamic添加虚拟主机

我正在开发一个PHP Web应用程序,除其他外,需要允许用户添加,编辑和删除Apache虚拟主机条目。 (我在我的Apache2.conf中包含一个可写的configuration文件)。 让Apache重新启动或识别vhost文件中的这些更改的最佳方法是什么? 我看到的唯一方法是以某种方式升级PHP到root权限,并在文件更新时调用“apachectl graceful”,有没有更好的方法? 我希望更改立即生效,而不是等待crontab执行….

从安全的angular度来看,人们无法想象许多更糟糕的想法。 人们使用chroot和其他机制来试图从Web服务器进程/有效用户中删除权限。 无论您是否授予Web用户升级的权限,您都允许Web进程通过允许其重写configuration文件来定义在哪些目录中通过何种types的脚本可执行的function。 可怕的,可怕的想法。

我会build议创build一个networking服务器可以采取的一套非常有限的行动,也许写需要的虚拟主机的名字和主目录到web根文本文件。 其他一些具有所需权限的进程可以检查语法并将其转换为所需的更改。 或者直接通过TCP连接将命令发送到同一台机器上的端口,如下所述。

为了将权限升级限制为仅采取这一操作,您可以编写一个TCP服务器,监听Web服务可以发送重新启动消息的特定端口; 我已经编写了这种特殊用途的TCP服务器(只有几百行C,大部分可用作模板),以允许另外的chroot隔离的web服务器进程访问一些通常不可用的服务, blanch访问文件系统和二进制文件。

如果你真的想这样做,并用Apache来做,请阅读有关mod_vhost_alias – httpd.conf中没有更改,不重新启动