你能通过cPanel API json调用创建MySQL数据库吗?

时间:2011-10-21 16:45:16

标签: php perl api cakephp-1.3 cpanel

我希望通过json api调用自动创建MySQL数据库。要列出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_”是无效的数据库名称。它包含无效字符。

有什么想法吗?

更新

我通过CakePHP中的HTTP Socket连接使用以下代码运行它:

$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 :(得分:0)

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

你在网址中有两次dbname,但我不知道这是否重要......

我不确定url API是如何工作的,你可以尝试... _ jsonapi_func = adddb(thedbname)但我不知道是否可行。

答案 1 :(得分:0)

找到解决方案。为了通过cPanel API创建/删除数据库,必须通过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)中具有身份验证。像魅力一样工作!