【问题标题】:setting up subdomain in LAMP with PHP使用 PHP 在 LAMP 中设置子域
【发布时间】:2011-10-06 14:45:15
【问题描述】:

有没有办法拥有一个 LAMP 服务器并通过 PHP 以编程方式创建子域?

我不想安装 Plesk 或 cPanel,我知道他们有 API 可以让我创建子域。但是有没有办法绕过它们并拥有一个只安装了 LAMP 服务的裸服务器。

【问题讨论】:

    标签: php lamp


    【解决方案1】:

    只需将所有子域指向您的文档根目录,然后找出您的 PHP 代码中访问了哪个子域。使用通配符 DNS 和通配符虚拟主机,您无需“创建”子域,所有可能的子域都存在。

    <VirtualHost *:80>
        ServerName *.example.com
        DocumentRoot /var/www/html
    </VirtualHost>
    

    这就是将子域分配给每个用户的服务的工作方式。他们实际上不会在每次用户注册时创建 DNS 记录、编辑 Web 服务器配置文件并重新启动所有服务。

    【讨论】:

    • hmmmm,是的,我确实想过。当我使用 Plesk 时,我注意到每次创建子域时都会将其添加到 vhosts.conf 文件中,因此其中会有 80 多个条目。 Plesk 是否每次都重启 apache?
    • 是的,它每次都会重新启动 apache。
    【解决方案2】:

    你可以看看Apache提供的海量虚拟主机模块:

    在您的 PHP 中,当您想创建一个新域时,只需创建一个新目录...并实施此配置的部分内容(请参阅上面的链接)以了解如何配置您的 Apache。这将允许每个主机有一个单独的虚拟主机......而不是替代答案,它仍然需要每个唯一主机名的更多配置工作......

     # get the server name from the Host: header
     UseCanonicalName Off
    
     # this log format can be split per-virtual-host based on the first field
     LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
     CustomLog logs/access_log vcommon
    
     # include the server name in the filenames used to satisfy requests
     VirtualDocumentRoot /www/hosts/%0/docs
     VirtualScriptAlias /www/hosts/%0/cgi-bin
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 2013-02-23
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多