如何通过 cpanel/whm API 创建数据库? [英] How does one go about creating a database through the cpanel/whm API?
问题描述
我有 API 在专用服务器上为用户创建帐户,创建电子邮件地址也很好,但是当我尝试通过 API 创建 mysql 数据库时,我收到错误消息访问被拒绝",即使访问权限是root.
I have the API creating an account on a dedicated server for a user fine, creating email addresses fine as well, however when I attempt to create an mysql database through the API, I get error message 'Access Denied', even though access is root.
我尝试使用的代码:
$xmlapi = new xmlapi($host);
$xmlapi->password_auth("".$root_user."","".$root_pass."");
$xmlapi->set_debug(1);
$xmlapi->set_output('array');
$xmlapi->set_port('2083');
//create database
$createdb = $xmlapi->api1_query($root_user, "Mysql", "adddb", array($dbname));
以及我返回的错误数据:
and the error data I am getting back:
URL: https://delta1.powerstorm.net:2083/xml-api/cpanel
DATA: cpanel_xmlapi_user=root&cpanel_xmlapi_module=Mysql&cpanel_xmlapi_func=adddb&cpanel_xmlapi_apiversion=1&arg-0=site
Authentication Header: Authorization: Basic cm9vdDphY3Jtp3MxOTY1
RESPONSE:
<?xml version="1.0" ?>
<cpanelresult>
<error>Access denied</error>
<data>
<result>0</result>
<reason>Access denied</reason>
</data>
</cpanelresult>
当其他一切正常时,为什么这部分会失败有什么想法吗?
Any ideas on why this one part is failing when everything else works fine?
推荐答案
您不能使用 root
帐户创建 cPanel 数据库.另外,请确保设置端口.2082
用于未加密连接,而 2083
用于加密连接.您还可以使用 IP 地址代替域名".
You can not use root
account to create cPanel databases. Also, make sure to set the port. 2082
is for unencrypted connection, while 2083
is for encrypted. You can also use the IP address in place of "domainName".
检查下面的代码,因为它应该可以工作.
Check the following code as it should work.
require("xmlapi.php");
$opts = [
"userName" => "UserUserName", //+++ Replace UserUserName
"password" => "UserPassword", //+++ Replace UserPassword
"dbPassword" => "DatabasePassword", //+++ Replace DatabasePassword
];
$xmlapi = new xmlapi("domainName");
$xmlapi->set_port( 2083 );
$xmlapi->password_auth($opts['userName'],$opts['password']);
$cpaneluser=$opts['userName'];
$databasename="dbName";
$databaseuser="dbUserName";
$databasepass=$opts['dbPassword'];
// database creation
$createdb = $xmlapi->api1_query($cpaneluser, "Mysql", "adddb", array($databasename));
// user creation
$usr = $xmlapi->api1_query($cpaneluser, "Mysql", "adduser", array($databaseuser, $databasepass));
// adds user to database
$addusr = $xmlapi->api1_query($cpaneluser, "Mysql", "adduserdb", array("".$cpaneluser."_".$databasename."", "".$cpaneluser."_".$databaseuser."", 'all'));
这篇关于如何通过 cpanel/whm API 创建数据库?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!