La mayoría de los proveedores de hosting utilizan cPanel. Este tutorial es un ayudante para aquellos de ustedes que necesitan gestionar varias cosas de cPanel con PHP - Más concretamente, les mostraré cómo crear nuevos subdominios, bases de datos y cuentas de correo electrónico. Para poder "hablar" de ida y vuelta con la API de cPanel usted necesitará el "XMLAPI Client Class" que puede ser descargado de GitHub.
<?php
$cpanelusr = 'username';
$cpanelpass = 'password';
$xmlapi = new xmlapi('127.0.0.1');
$xmlapi->set_port( 2083 );
$xmlapi->password_auth($cpanelusr,$cpanelpass);
$xmlapi->set_debug(0);
$result = $xmlapi->api1_query($cpanelusr, 'SubDomain', 'addsubdomain', array('subdomainname','domain.com',0,0, '/public_html/subdomainname'));
?>
<?php
$cpanelusr = 'username';
$cpanelpass = 'password';
$xmlapi2 = new xmlapi('127.0.0.1');
$xmlapi2->set_port( 2083 );
$xmlapi2->password_auth($cpanelusr,$cpanelpass);
$xmlapi2->set_debug(0);
// $databasename y $databaseuser contendrán el prefijo de cPanel Ej: prefix_dbname y prefix_dbuser
$databasename = 'db_name';
$databaseuser = 'db_usr'; //¡Tener cuidado! Esto puede tener un máximo de 7 caracteres
$databasepass = 'passwordforthenewuser';
$createdb = $xmlapi2->api1_query($cpanelusr, "Mysql", "adddb", array($databasename)); //crea la base de datos
$usr = $xmlapi2->api1_query($cpanelusr, "Mysql", "adduser", array($databaseuser, $databasepass)); //crea el usuario
$addusr = $xmlapi2->api1_query($cpanelusr, "Mysql", "adduserdb", array("".$cpanelusr."_".$databasename."", "".$cpanelusr."_".$databaseuser."", 'all')); //concede todos los privilegios al usuario que acabamos de crear
?>
<?php
//por favor, utilice el mismo proceso como antes para autenticarse
$email_user = "emailusr";
$email_password = "emailusrpass";
$email_domain = "domain.com";
$email_quota = '10';
$addemail $xmlapi->api1_query($cpanelusr, "Email", "addpop", array($email_user, $email_password, $email_quota, $email_domain) );
?>
Por supuesto que usted puede hacer mucho más si se estudia la API cPanel, pero el código de arriba ha sido probado antes por mí mismo y pensé que debía compartirlo con ustedes. No dude en añadir más API llamadas en la sección de comentarios.