WHM/cPanel サーバー上の PHP からプログラムでデータベースを作成する
質問
PHP から WHM/cPanel サーバー上に新しいデータベースとユーザーを作成できるかどうか疑問に思っていました。
解決
[OK]を、これはものです。
'mysql_create_db' 関数は、cPanelのサーバー上で正常に動作しません。
このかかわらに対する解決策のようなので、独自のcPanelの機能を使用することによって、ある
http://USER:PASS@HOST:2082/frontend/SKIN/sql/adddb.html?db=DB
ここで使用することができます既製のスクリプトもありますます。http: //www.zubrag.com/scripts/cpanel-database-creator.phpする
他のヒント
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');
をDB:
mysql_query('create database foo');
または
mysql_create_db('foo');
http://www.php.net/manual/en/function.mysql-create-db.php
をMySQLユーザー:
を作成できますユーザーアカウントを発生するように、SQLおよび走行で mysql_query
(のように最初の例): http://dev.mysql.com/doc/refman/5.1/en/adding-users.html
データベースへの接続に使用するユーザーが MySQL で定義された適切な権限を持っている限り、これは問題にはなりません。
データベースを作成するには、ユーザーが必要とするのは CREATE権限 (ドロップするには DROP 権限が必要です)、ユーザーを作成するには、 CREATE USER権限. 。また、必要になる場合があります GRANT OPTION 権限 他のユーザーに権限を付与できるようになります。
したがって、WHM/cPanel を通じて作成できる DB ユーザーがこれらの権限を持っている限り、問題ないはずです。