我希望通过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);
答案 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)中具有身份验证。像魅力一样工作!