我正在尝试找到一个 php 代码来创建子域并为我的用户自动安装子帐户的 cms。这个子域不会只有我正在制作的 cms 的 cpanel。
1 回答
您的问题暴露了您对 DNS 和网络服务器的工作方式缺乏了解。对于汽车的类比,这就像在询问“试图让柴油动力汽车通过太阳能进行跨大西洋飞行”。
我将从顶部开始:
域名系统
“子域”是作为另一个子域的任何 DNS 标签。在大多数情况下,这是一个三级域(二级域类似于顶级“.com”域的“google.com”,因此可能的子域是“www.google.com”或“something.com”。 google.com”)。请记住,“www”本身并没有什么特别之处。标签。
子域标签通常是将名称(例如“www”或“ftp”)映射到 IP 地址的“ ”或“ A
”记录,或者在 IPv6 的情况下为“ ”记录。CNAME
AAAA
子域存储在 DNS 服务器的“区域文件”中或从动态 DNS 服务器返回。
网站
“网站”是一个完全抽象的虚拟结构,它依赖于网络服务器软件。大多数传统的网络服务器(Apache、IIS)将网站定义为一个物理文件系统目录(例如“C:\sites\foobar.com”),它对应于/
与一个或多个网络绑定相关联的根“”路径,一个网络-绑定通常是主机 IP 地址(每个网站都有自己的 IP 地址或共享 IP 地址),域名“ host-header
”(浏览器将请求的 URI 的域名发送到服务器,以便服务器可以区分绑定到同一个的多个网站IP 地址)或 SSL 证书(现在这种情况不太正确,但直到最近,由于技术原因,每个 IP 地址只能有一个受 SSL 保护的网站)。
现在正如我所说,一个网站可以与多个域名相关联,例如,如果您访问“www.google.com”或“google.com”,Google 的网站是如何相同的。同样,网络服务器也可以同时托管多个网站,所有网站都具有不同的域名绑定。
PHP
最后,PHP 是一种脚本语言和环境,在 Web 服务器的上下文中运行,用于生成返回给客户端的 HTML。PHP 可以执行文件系统和数据库 IO 和处理逻辑,但它主要是请求驱动的。PHP 也可以在命令行环境中使用,作为 Perl 的替代品。
所以你想要什么?
因此,鉴于我刚刚描述的内容,您所问的内容完全模棱两可。以下是您可能的意思的可能性:
- 编写一个能够重新配置您的 Apache 网络服务器的 PHP 脚本,以创建一个绑定到子域的新网站定义?
- 编写一个能够重新配置 DNS 服务器以创建新的子域 A/AAAA/CNAME 记录的 PHP 脚本?
- 编写一个作用于
$_SERVER["HTTP_HOST"]
标题的基于 PHP 的网站?例如处理任何子域请求的笑话网站(例如“yournamehere.loves.me”)。请注意,这仅在您拥有支持通配符的 DNS 服务器时才有效。BIND 和 Windows 的 DNS 服务器不支持这一点。您的网络服务器还需要支持通配符主机头或将您的网站绑定到 IP 地址。 - 以上任何一项或全部。