Creare il database di codice da PHP su server di WHM / cPanel
Domanda
mi chiedevo se è possibile creare un nuovo database e l'utente, da PHP, su un server WHM / cPanel.
Soluzione
Ok, questa è la cosa.
funzione 'mysql_create_db' non funziona correttamente su server cPanel.
C'è una soluzione a questo, però, utilizzando la funzione cPanel proprietaria in questo modo
http://USER:PASS@HOST:2082/frontend/SKIN/sql/adddb.html?db=DB
C'è anche uno script ready-made che può essere utilizzato qui http: //www.zubrag.com/scripts/cpanel-database-creator.php
Altri suggerimenti
Per CPanel:
function create_db($cPanelUser,$cPanelPass,$dbName) {
$buildRequest = "/frontend/x3/sql/addb.html?db=".$dbName;
$openSocket = fsockopen('localhost',2082);
if(!$openSocket) {
return "Socket error";
exit();
}
$authString = $cPanelUser . ":" . $cPanelPass;
$authPass = base64_encode($authString);
$buildHeaders = "GET " . $buildRequest ."\r\n";
$buildHeaders .= "HTTP/1.0\r\n";
$buildHeaders .= "Host:localhost\r\n";
$buildHeaders .= "Authorization: Basic " . $authPass . "\r\n";
$buildHeaders .= "\r\n";
fputs($openSocket, $buildHeaders);
while(!feof($openSocket)) {
fgets($openSocket,128);
}
fclose($openSocket);
//echo "Created database $dbName";
}
create_db('username','password','dbName');
Per creare un DB:
mysql_query('create database foo');
o
mysql_create_db('foo');
http://www.php.net/manual /en/function.mysql-create-db.php
Per creare un utente MySQL:
È possibile creare account utente generando il codice SQL e funzionante attraverso mysql_query
(proprio come il primo esempio): http://dev.mysql.com/doc/refman/5.1/en/adding-users.html
Fino a quando l'utente utilizzato per la connessione al database ha i privilegi appropriati definiti in MySQL questo non dovrebbe essere un problema.
Per creare database l'utente ha bisogno il privilegio CREATE (far cadere loro che sarebbe GOCCIA privilegio), per creare utente (s) è necessario avere la CREATE privilegi utente . Potrebbe anche essere necessario il GRANT OPTION privilegio per essere in grado di concedere privilegi ad altri utenti.
Quindi, fintanto che l'utente DB (s) è possibile creare attraverso WHM / cPanel avere questi privilegi, si dovrebbe essere ok.