![](/img/trans.png)
[英]How to create database programmatically in WHM/Cpanel using php code?
[英]Create a new subdomain and MySQL database via WHM or cPanel API with PHP
我曾希望這是一項容易完成的任務,但是由於我已經深入研究了幾天,所以整個過程似乎比我最初想象的要復雜得多。
我想使用PHP通過WHM API 1或cPanel API 2在mydomain.com下創建一個新的子域,例如test123.mydomain.com,然后在該新子域下使用一個新的MySQL數據庫。
我假設我需要首先通過WHM進行身份驗證(使用WHM遠程API令牌?),然后調用適當的API模塊和函數,最后檢查響應是否成功。 由於我使用PHP進行此操作,因此假設我需要通過curl
來完成所有操作。 在cPanel API 2文檔中 ,我看到此調用:
https://hostname.example.com:2087/cpsess##########/json-api/cpanel?cpanel_jsonapi_user=user&cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=SubDomain&cpanel_jsonapi_func=addsubdomain&domain=subdomain&rootdomain=example.com&dir=%2Fpublic_html%2Fdirectory_name&disallowdot=1
不幸的是,這沒有太大幫助,因為我沒有打開的“ cpsess”,因為我正在通過PHP腳本執行此操作,而是用WHM遠程API令牌替換“ cpsess ##########”也不行。 我已經嘗試了幾種不同的方法,到目前為止,我唯一可以使用的方法是cPanel API 1示例,用於在服務器上列出帳戶...它可以很好地工作,但是它在API 1上卻沒有可用於創建子域的模塊:
function getUserAccountList($user,$token){
$userList = "";
$query = "https://hostname.example.com:2087/json-api/listaccts?api.version=1";
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
$header[0] = "Authorization: whm $user:$token";
curl_setopt($curl,CURLOPT_HTTPHEADER,$header);
curl_setopt($curl, CURLOPT_URL, $query);
$result = curl_exec($curl);
$http_status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($http_status != 200) {
$userList = "[!] Error: " . $http_status . " returned\n";
} else {
$json = json_decode($result);
$userList.= "[+] Current cPanel users on the system:<BR><BR>";
foreach ($json->{'data'}->{'acct'} as $userdetails) {
$userList.= $userdetails->{'user'} . "<BR>";
}
}
curl_close($curl);
return $userList;
}
問題是:如何使用WHM API 1或cPanel API 2使用PHP腳本創建新的子域和MySQL數據庫? 任何幫助將不勝感激!
我找到了一種效果很好的解決方案,並且消除了處理cPanel和WHM提供的不同API版本時的大部分猜測:
此設置需要安裝Composer,PHP依賴關系管理器以及Mochamad Gufron開源的mgufrone / cpanel-whm軟件包,因此您需要對服務器的root訪問權限。 上面的鏈接提供了所有信息,包括設置,通過PHP的WHM / cPanel API創建新的子域和MySQL數據庫的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.