我想知道如何设置一个自动且轻型的 PHP 为我的数据库中的每个用户创建子域? 这可能吗?
<?php
$domainName = 'example.com';
$subDomainName = 'demo';
$subDomain = $subDomainName;
$cPanelUser = 'cpanel_user_name';
$cPanelPass = 'cpanel_pass';
$rootDomain = $domainName;
$buildRequest = "/frontend/paper_lantern/subdomain/doadddomain.html?rootdomain=" . $rootDomain . "&domain=" . $subDomain . "&dir=public_html/$domainName/$subDomain";
$openSocket = fsockopen('localhost',2082);
if(!$openSocket) {
return "Socket error";
exit();
}
$authString = $cPanelUser . ":" . $cPanelPass;
$authPass = base64_encode($authString);
$buildHeaders = "GET " . $buildRequest ."\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);
echo $newDomain = "http://" . $subDomain . "." . $rootDomain . "/";
?>
你确定可以去http://vikku.info/programming/php/create-subdomain-dynamically-in-php-code-to-create-subdomains-in-server-using-php.htm 或http://www.phpclasses.org/browse/file/17134.html
只需配置添加子域名、cpanel 用户名、cpanel 密码、域名等设置即可。
例如
如果您的子域名是 test.example.com
create_subdomain("test","CPANEL_USERNAME","CPANEL_PASSWORD","example.com");
您可以使用
/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");