十二月 26th, 2009

用 PHP 對 cPanel/WHM 下達新增帳號指令

57 views, 程式語言, by 蒼時弦也.

前幾天,我意外取得 iPanel 的 Nulled 版本。
因此詢問初心者站長的管理員興趣,並且嘗試整合到 Discuz 論壇幣系統。
經過幾天調查,發現不適用之後又轉向 WHMCS 研究。

而這兩款都使用特殊的加密(Zend的擴充套件,還未完全破解)
因此我無法理解原理,也無法做其他處理。

而在使用MSN對談過程中,我獲得了一個啟發「Access Key」與 cPanel 關係。
因此著手蒐集資料,最後在 cPanel Wiki 發現我的答案。

這是cPanel的一個API能夠控制 WHM 在 Wiki 顯示為 XmlApi
支援格式有 JSON 和 XML 兩種。

官方也公佈了一套範例 PHP 檔案,此篇文章則以其中核心部份 xmlapi.php.inc 做說明。

1.  到 cPanel Wiki 下載範例壓縮檔,並且把 xmlapi.php.inc 複製到要製作的目錄。

2. 新增一個 PHP 檔案,內容參考 範例壓縮檔 任一檔案撰寫。

include('xmlapi.php.inc'); //讀入程式庫

$server = 'domain.com'; //主機域名
$user = 'username'; //登入帳號(某些指令需要root帳號)
$accesskey = ''; //Access Key 可到 WHM 控制台複製(直接貼上即可,無須理會斷行)

//cPanel API Object
$cpapi = new xmlapi($server); //建立物件並連接主機
$cpapi->hash_auth($user, $accesskey); //進行登入(另一個方法是輸入帳號密碼)

//Create Account
$account_info = array(
  'username' => 'testuser', //使用者帳號
  'password' => 'p123456', //使用者密碼
  'domain' => 'testuser.domain.com', //使用者域名
  'email' => 'test@domain.com', //使用者信箱
  'plan' => 'basic' //主機方案
);
$return = $cpapi->createacct($account_info); //下達指令,並且把傳回的XML儲存

3. 接著到 cPanel 控制台觀看,就會發現新帳號出現了!

如果想要把回傳資訊顯示出來,可以利用PHP5的simplexml讀取。

$xmlobj = simplexml_load_string($return);
foreach($xmlobj as $key => $arr){
  echo "{$key} - {$arr}
";
}

如果想要知道更多資訊,可以到 cPanel Wiki 查詢。

經過這次的吸收知識,可是讓我了解WHMCS這類軟體原來是這樣控制主機控制台。
大家也試試看吧!

現在台灣很多人都提供cPanel免空,有租 Reseller 的朋友可以利用這個API做出一套簡易申請系統喔!
不但方便,還能夠順便儲存一些資訊以後調出來查詢呢!

相關文章

Back Top


Blog Widget by LinkWithin