你如何通过PHP执行Vhost?

时间:2012-02-07 03:42:05

标签: php linux apache command-line virtualhost

我正在创建一个网站,每个用户都可以在我的服务器上指出其域的A记录,我将为他们提供网页。我知道如何通过Linux命令行来完成它,但我不知道如何在脚本中执行它。我知道mkdir(/*file location*/)执行mkdir命令。我也知道fopen。我的方法是http://www.rackspace.com/knowledge_center/index.php/Ubuntu_-_Apache_Virtual_Hosts。我不完全肯定如何通过PHP脚本创建自定义虚拟主机等。

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:1)

听起来好像你希望使用php脚本改变Apache配置文件。执行此操作有点危险,因为您总是冒着错误配置Apache配置文件的风险,这会阻止Apache重新启动,但我认为这对您来说很明显。

我建议您使用include directive到一个目录,在该目录中您将为每个vhost添加和删除单个conf文件。

Include conf/vhosts/*.conf

(include指令中的路径与ServerRoot相关。)这样,您可以使事情更有条理,并减少竞争条件的可能性。

此外,您应该在脚本中编写一些代码来检查运行apachectl configtest命令的输出:

$ /usr/sbin/apachectl -t
Syntax OK

通过各种PHP shell/"Program" execution functions之一执行它,如果有错误,请还原刚刚更改过的conf文件。

如果您喜欢fopen,请使用它,但许多人发现file_get_contentsfile_put_contents功能更易于使用。

希望这有帮助。