Методы взаимодействия с cPanel на хостинге InMotion: примеры API и фрагменты кода

Вот несколько методов с примерами кода для работы с cPanel в хостинге InMotion:

  1. API cPanel. Хостинг InMotion предоставляет комплексный API для взаимодействия с cPanel. Вы можете использовать этот API для программного выполнения различных задач, таких как создание учетных записей электронной почты, управление базами данных и настройка параметров DNS. Вот пример на PHP с использованием API cPanel для создания новой учетной записи электронной почты:
<?php
// cPanel API configuration
$cpanelUsername = 'your_cpanel_username';
$cpanelPassword = 'your_cpanel_password';
$cpanelHost = 'your_cpanel_hostname';
// API request parameters
$email = 'newuser@example.com';
$password = 'secretpassword';
// API endpoint
$apiUrl = "https://$cpanelUsername:$cpanelPassword@$cpanelHost:2083/cpsess1234567890/execute/Email/addpop";
// API request payload
$data = [
    'domain' => 'example.com',
    'email' => $email,
    'password' => $password,
];
// Send API request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
// Process API response
if ($response === false) {
    echo 'Error occurred: ' . curl_error($ch);
} else {
    $responseData = json_decode($response, true);
    if ($responseData['status'] === 1) {
        echo 'Email account created successfully.';
    } else {
        echo 'Failed to create email account. Error: ' . $responseData['statusmsg'];
    }
}
?>
  1. API WHM: если у вас есть доступ к WebHost Manager (WHM), который представляет собой панель управления для управления учетными записями cPanel, вы можете использовать API WHM для выполнения административных задач. Вот пример на Python с использованием WHM API для создания новой учетной записи cPanel:
import requests
# WHM API configuration
whmUsername = 'your_whm_username'
whmToken = 'your_whm_api_token'
whmHost = 'your_whm_hostname'
# API request parameters
username = 'newuser'
domain = 'example.com'
password = 'secretpassword'
# API endpoint
apiUrl = f"https://{whmHost}:2087/json-api/createacct?api.version=1"
# API request payload
data = {
    'username': username,
    'domain': domain,
    'password': password,
}
# Send API request
headers = {
    'Authorization': f'cpanel {whmUsername}:{whmToken}',
    'Content-Type': 'application/json',
}
response = requests.post(apiUrl, json=data, headers=headers)
# Process API response
responseData = response.json()
if responseData['metadata']['result'] == 1:
    print('cPanel account created successfully.')
else:
    print('Failed to create cPanel account. Error: ', responseData['metadata']['reason'])
  1. cPanel UAPI: cPanel также предоставляет пользовательский API (UAPI), который позволяет выполнять различные задачи на уровне пользователя. Вот пример использования UAPI cPanel на Ruby для получения информации об использовании диска учетной записью cPanel:
require 'net/http'
require 'json'
# cPanel UAPI configuration
cpanelUsername = 'your_cpanel_username'
cpanelPassword = 'your_cpanel_password'
cpanelHost = 'your_cpanel_hostname'
# API endpoint
apiUrl = URI.parse("https://#{cpanelHost}:2083/execute/Quota/get_quota_usage")
# API request payload
data = {
    'api.version' => 3,
    'user' => 'cpanel_account_username',
}
# Send API request
http = Net::HTTP.new(apiUrl.host, apiUrl.port)
http.use_ssl = true
request = Net::HTTP::Post.new(apiUrl.path)
request.basic_auth(cpanelUsername, cpanelPassword)
request.set_form_data(data)
response = http.request(request)
# Process API response
responseData = JSON.parse(response.body)
if responseData['status'] == 1
    puts "Disk usage: #{responseData['data']['diskused']} bytes"
else
    puts "Failed to fetch disk usage. Error: #{responseData['statusmsg']}"
end