我让API在专用服务器上创建一个帐户,以便用户罚款,也可以创建电子邮件地址,但当我试图通过API创建mysql数据库时,我会收到错误消息"Access Denied",即使访问是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));
以及我得到的错误数据:
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>
有什么想法吗?为什么这一部分会失败,而其他一切都很好?
您不能使用root
帐户创建cPanel数据库。另外,请确保设置端口。2082
用于未加密连接,而2083
用于加密连接。您也可以使用IP地址来代替"域名"。
检查以下代码是否正常工作。
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'));
谢谢@Topher,不过这是一个小建议。先创建用户,然后创建db:是安全的
// user creation
$usr = $xmlapi->api1_query($cpaneluser, "Mysql", "adduser", array($databaseuser, $databasepass));
和数据库,
// database creation
$createdb = $xmlapi->api1_query($cpaneluser, "Mysql", "adddb", array($databasename));