Erstellen Datenbank programmatisch von PHP auf WHM / cPanel-Server
Frage
Ich habe mich gefragt, ob es möglich ist, eine neue Datenbank und die Benutzer zu erstellen, von PHP, auf einem WHM / cPanel-Server.
Lösung
Ok, das ist die Sache.
'mysql_create_db' Funktion funktioniert nicht richtig auf cPanel-Server.
Es gibt eine Lösung für dieses aber durch die proprietäre cPanel-Funktion wie so
http://USER:PASS@HOST:2082/frontend/SKIN/sql/adddb.html?db=DB
Es gibt auch ein fertiges Skript, das hier verwendet werden kann, http: //www.zubrag.com/scripts/cpanel-database-creator.php
Andere Tipps
Für 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');
ein DB erstellen:
mysql_query('create database foo');
oder
mysql_create_db('foo');
http://www.php.net/manual /en/function.mysql-create-db.php
einen MySQL-Benutzer zu erstellen:
Sie können die Benutzer-Account erstellen, indem Sie die SQL-Generierung und durch mysql_query
(genau wie beim ersten Beispiel) ausgeführt wird: http://dev.mysql.com/doc/refman/5.1/en/adding-users.html
Solange der Benutzer an die Datenbank verwenden, um eine Verbindung über die entsprechenden Berechtigungen definiert in MySQL sollte dies kein Problem sein.
So erstellen Datenbanken der Benutzer muss die Privileg CREATE (zu ihnen fallen, dass DROP Privileg wäre), erstellen (r) Benutzer die USER Privileg CREATE. Vielleicht haben Sie auch brauchen die GRANT OPTION Privileg können Berechtigungen an andere Benutzer gewähren.
Solange der DB Benutzer (n) durch WHM erstellen / cPanel haben diese Privilegien, sollten Sie in Ordnung sein.