有没有办法让LAMP服务器通过PHP以编程方式创建子域?
我不想安装Plesk或cPanel,我知道他们有API可以让我创建子域名。但是有没有办法解决它们并且只安装了LAMP服务的裸机服务器。
答案 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