【问题标题】:How do you execute Vhosts via PHP?你如何通过 PHP 执行 Vhost?
【发布时间】:2012-02-28 13:16:23
【问题描述】:

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

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

【问题讨论】:

  • 您希望为所有请求或特定域提供服务吗?
  • @SomeshMukherjee 仅限他们指定的特定域。

标签: php linux apache command-line virtualhost


【解决方案1】:

听起来好像您希望使用 php 脚本更改 Apache 配置文件。这样做有点危险,因为您总是冒着错误配置 Apache 配置文件的风险,这会阻止 Apache 重新启动,但我认为这对您来说是显而易见的。

我建议您使用 include directive 指向您将添加和删除每个虚拟主机的单个 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 函数更易于使用。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-03-05
    • 2018-05-05
    • 1970-01-01
    • 2011-06-07
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多