2012-02-07 36 views
0

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

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

+0

是否希望为所有请求或特定域提供服务? – 2012-02-07 03:44:20

+0

@SomeshMukherjee只有他们指定的特定域。 – chromedude 2012-02-07 03:46:18

回答

1

听起来好像您希望使用php脚本来更改Apache配置文件。这样做有点危险,因为你总是冒着错误配置你的Apache配置文件的方式来阻止Apache重启,但我认为这很明显。

我建议你使用一个include directive到你要添加和删除每个虚拟主机的单个conf文件的目录。

Include conf/vhosts/*.conf 

(路径在include指令是相对于ServerRoot。)这样,你可以让事情变得稍微更有组织,减少竞争条件的可能性。

而且你应该写脚本的代码可以检查运行apachectl configtest命令的输出:通过各种PHP shell/"Program" execution functions之一

$ /usr/sbin/apachectl -t 
Syntax OK 

执行它,如果有错误,恢复通过conf你刚刚修改过的文件。

如果你喜欢fopen,然后使用它,但很多人发现file_get_contentsfile_put_contents函数更容易使用。

希望这会有所帮助。