如何使用 cURL 创建子域?
Posted
技术标签:
【中文标题】如何使用 cURL 创建子域?【英文标题】:How to Create subdomains using cURL? 【发布时间】:2015-10-10 15:49:59 【问题描述】:我想在我的网站上创建子域。我的托管计划不支持子域通配符条目。所以,我想通过在 php 中使用 cURL 来创建它。 我的问题解释如下:
此链接用于创建子域:
https://cpanel.myhost.com/cpanel/indexcp.php?option=subdomains
上面链接中的这个表单创建了一个子域:
<form method="post" action="/cpanel/indexcp.php?option=subdomains_add" name="domain">
<table>
<tr>
<td align="right"><b>Subdomain</b> : </td>
<td><input type="text" onchange="updatedir(this);" id="domain" name="DomainName" /> .
<select name="domain_selector" style="width: 300px">
<option>mydomain.com</option>
</select>
</td>
<td><div id="domain_error" style="height: 16px; width: 16px"></div></td>
</tr>
</table>
</td>
<td></td>
</tr>
<tr><td colspan="3"><br /></td></tr>
<tr>
<td> </td>
<td><input class="input-button" id="subdomain_submit" type="submit" value="Create" name="B1" />
</td>
<td></td>
</tr>
</table>
</form>
那么,如何使用 cURL 从我的 cPanel 创建子域??
【问题讨论】:
@Julian - 如果您可以在浏览器中执行此操作,您可以在 cURL 中执行此操作。但是,这并不意味着您应该在 cURL 中进行。 【参考方案1】:此代码使用 cPanel 的 JSON 版本的“API2”,可以满足您的需求。我没有使用标准的 cPanel 帐户对其进行测试,仅使用具有 WHM 访问权限的帐户进行测试。我希望这会有所帮助。
只需将 $subdomain
和 $rootdomain
更改为您需要的。显然也要更新用户凭据。
<?
$whmusername = "root";
$whmpassword = "12345luggage";
$subdomain = "mysubdomain";
$rootdomain = "example.com";
$query = "https://127.0.0.1:2087/json-api/cpanel?cpanel_jsonapi_user=user&cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=SubDomain&cpanel_jsonapi_func=addsubdomain&domain=".$subdomain."&rootdomain=".$rootdomain;
$curl = curl_init(); // Create Curl Object
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0); // Allow self-signed certs
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0); // Allow certs that do not match the hostname
curl_setopt($curl, CURLOPT_HEADER,0); // Do not include header in output
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); // Return contents of transfer on curl_exec
$header[0] = "Authorization: Basic " . base64_encode($whmusername.":".$whmpassword) . "\n\r";
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); // set the username and password
curl_setopt($curl, CURLOPT_URL, $query); // execute the query
$result = curl_exec($curl);
if ($result == false)
error_log("curl_exec threw error \"" . curl_error($curl) . "\" for $query");
// log error if curl exec fails
curl_close($curl);
print $result;
?>
【讨论】:
以上是关于如何使用 cURL 创建子域?的主要内容,如果未能解决你的问题,请参考以下文章
我们如何使用 vhost 和 nodejs 添加子域 dynamicllay