簡體   English   中英

使用PHP通過WHM或cPanel API創建新的子域和MySQL數據庫

[英]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版本時的大部分猜測:

https://www.codepunker.com/blog/using-php-to-create-new-subdomains-databases-and-email-accounts-on-a-cpanel-driven-server

此設置需要安裝Composer,PHP依賴關系管理器以及Mochamad Gufron開源的mgufrone / cpanel-whm軟件包,因此您需要對服務器的root訪問權限。 上面的鏈接提供了所有信息,包括設置,通過PHP的WHM / cPanel API創建新的子域和MySQL數據庫的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM