服务器有cPanel环境时使用php动态创建子域名

问题描述 投票:0回答:3

我想知道如何使用 PHP 创建子域。 服务器使用 cPanel 控制面板,我看过代码,但不清楚它的作用。 php 有没有创建子域的函数? 或者我们必须依赖服务器设置吗?

php subdomain
3个回答
3
投票

如果你有cPanel,那么你可以使用我用过的。

为我的托管公司服务器人员提供了非常简单的功能。

http://vikku.info/programming/php/create-subdomain-dynamically-in-php-code-to-create-subdomains-in-server-using-php.htm

正如其他用户所说,我同意 php 不能对此做任何事情......

这些函数间接调用 cPanel 库,并且这些函数可以访问服务器级函数,因为它们有权限这样做。


2
投票

PHP 与域或子域无关。您必须相应地配置您的服务器应用程序才能实现此目的。

如果您使用 apache,请查看 他们有关虚拟主机的文档


0
投票

您可以使用

/execute/SubDomain/addsubdomain
以编程方式创建子域。查看此cPanel文档以获取更多信息。

function create_subdomain($subDomain,$cPanelUser,$cPanelPass,$rootDomain) {
   $subdomainRequest = "/execute/SubDomain/addsubdomain?domain=" . $subDomain  . "&rootdomain=" . $rootDomain . "&dir=public_html/" . $subDomain . ".". $rootDomain;
 
    $openSocket = fsockopen('localhost',2082);
    if(!$openSocket) { return "Socket error";exit();}
 
    $authString = $cPanelUser . ":" . $cPanelPass;
    $authPass = base64_encode($authString);
    
    $buildHeaders  = "GET " . $subdomainRequest."\r\n";
    $buildHeaders .= "HTTP/1.0\r\n";
    $buildHeaders .= "Host:localhost\r\n";
    $buildHeaders .= "Authorization: Basic " . $authPass . "\r\n";
    $buildHeaders .= "\r\n";
    
    fputs($openSocket, $buildHeaders);
    while(!feof($openSocket)) {
        fgets($openSocket,128);
    }
    fclose($openSocket);
    $newDomain = "http://" . $subDomain . "." . $rootDomain . "/";
    return "Created subdomain $newDomain";
}
echo create_subdomain("Subdomain","cPanel-Username","cPanel-Password","Root-Domain");
© www.soinside.com 2019 - 2024. All rights reserved.