Можете ли вы создать базу данных MySQL с помощью API-интерфейса cPanel json? - PullRequest
0 голосов
/ 21 октября 2011

Я хочу автоматизировать создание базы данных MySQL с помощью вызова json api.Чтобы перечислить dbs, я могу просто использовать что-то вроде:

https://example.com:2083/json-api/cpanel?user=username&cpanel_jsonapi_module=MysqlFE&cpanel_jsonapi_func=listdbs&cpanel_jsonapi_version=2

Это успешно через HTTP-сокеты и CURL.Есть ли эквивалентный вызов для adddb?

https://example.com:2083/json-api/cpanel?user=username&cpanel_jsonapi_module=Mysql&cpanel_jsonapi_func=adddb&dbname=aa1&cpanel_jsonapi_version=1

Это не работает.Я получаю следующую ошибку:

'username_â € является недопустимым именем базы данных.Он содержит недопустимые символы.

Есть идеи?

ОБНОВЛЕНИЕ:

Я запускаю это через соединение HTTP Socket в CakePHP со следующим кодом:

$query = 'cpanel_jsonapi_module=MysqlFE&cpanel_jsonapi_func=adddb&dbname=aa1&cpanel_jsonapi_version=2';

$request = array(
            'auth' => array(
                'user' => $queryData['conditions']['username'],
                'pass' => $queryData['conditions']['password'],
                'method' => 'Basic',
            ),
            'uri' => array(
                'scheme' => 'https',
                'host' => $queryData['conditions']['host'],
                'port' => '2083',
                'user' => $queryData['conditions']['username'],
                'path' => 'json-api/cpanel',
                'query' => $query,
            ),
        );
    $result = json_decode($this->connection->request($request), true);

Ответы [ 2 ]

0 голосов
/ 22 октября 2011

Нашел решение.Чтобы создать / удалить БД через API cPanel, она должна обрабатываться через API 1. Доступ к API немного отличается.

Сначала вы должны получить тему, которую использует ваша учетная запись cPanel (StatsBar:stat (theme):

https://example.com:2083/json-api/cpanel?user=USERNAME&cpanel_jsonapi_module=StatsBar&cpanel_jsonapi_func=stat&display=theme&cpanel_jsonapi_version=2

Затем вы подключаете эту тему к другому запросу:

https://example.com:2083/frontend/THEME/sql/addb.html?db=aa1

Конечно, вы должны иметь Аутентификацию в HTTP-сокете (или CURL). Работаеткак шарм!

0 голосов
/ 21 октября 2011

http://docs.cpanel.net/twiki/bin/view/ApiDocs/Api1/ApiMysql#Mysql::adddb

У вас дважды есть имя dbname в URL, но я не знаю, имеет ли это значение ...

Я не уверен, как работает API URL,Вы можете попробовать ..._ jsonapi_func = adddb (thedbname), но я понятия не имею, сработает ли это.

...