使用PHP在LAMP中设置子域

时间:2011-07-16 04:14:01

标签: php lamp

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

我不想安装Plesk或cPanel,我知道他们有API可以让我创建子域名。但是有没有办法解决它们并且只安装了LAMP服务的裸机服务器。

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

您可以查看Apache提供的大规模虚拟主机模块:

使用PHP,当您想要创建新域时,只需创建一个新目录...并实现有关如何配置Apache的此配置的部分内容(请参阅上面的链接)。这将允许每个主机单独的vhost ...而不是备用答案,每个唯一的主机名仍然需要更多的配置工作......

 # 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