私を正しい軌道に乗せてくれた@AlexCに感謝します。以下は多くの共有ホスティングプランで機能しますが、最初にそれらのポリシーを確認することをお勧めします。私はテクニカルサポートチケットで私に返信し、「cpanelスクリプトを使用して自動化する必要があります」と述べました。だから、これは何ですか。
以下の例では、共有ホスティングプランのメインルートドメインとしてroot.comをすでに購入しています。ユーザー「user_myexamp」に完全な権限が割り当てられたパスワード「myexample」を使用して、「user_myexample」という名前のデータベースをセットアップしたいと思います。 「user_」プレフィックスと「myexamp」が奇妙に見える場合は、cpanelにルートユーザーのcpanelへのユーザーアカウントに基づくプレフィックスがあり、データベースユーザー名は最大7文字までしか使用できないためです。
これを実現するためにCpanelに接続するために、cpanelホームページのURL(ホスティングプランによって異なります)を入力して、解析して再利用できるようにしました。また、root.comのcpanelユーザー/パス情報を提供しました。
echoステートメントは、各HTTPGET要求が機能したかどうかに関係なく出力応答にすぎません。それを調べて、成功/失敗についてその出力から解析できるものがあるかどうかを確認することをお勧めします。
一部のホスティングプランでは、file_get_contentsがURLに接続するのをブロックしているため、fopen($ sURL、'r')またはCurlAPIに切り替える必要がある場合があります。
<?php
// @ input vars
$sPastedCpanelHomepageURL = 'https://root.com:2083/frontend/x3/index.html';
$sNewDB = 'myexample';
$sNewDBUser = 'myexamp'; // must be 7 chars max
$sNewDBPass = 'myexample';
$sCPanelUser = 'user';
$sCPanelPass = 'pass';
// @ processing
$sCP = dirname($sPastedCpanelHomepageURL);
$sCP = str_replace('://','://' . $sCPanelUser . ':' . $sCPanelPass . '@',$sCP);
$sPrefix = substr($sCPanelUser, 0, 7) . '_';
$sTask1 = '/sql/addb.html?';
$sTask2 = '/sql/adduser.html?';
$sTask3 = '/sql/addusertodb.html?';
$sNewDB = urlencode($sNewDB);
$sNewDBUser = urlencode($sNewDBUser);
$sNewDBPass = urlencode($sNewDBPass);
$sCPanelUser = urlencode($sCPanelUser);
$sCPanelPass = urlencode($sCPanelPass);
$sNewDBUser = substr($sNewDBUser, 0, 7);
$asData1 = array(
'db' => $sNewDB
);
$sData1 = http_build_query($asData1);
$s = file_get_contents($sCP . $sTask1 . $sData1);
echo "$s\n";
$asData2 = array(
'user' => $sPrefix . $sNewDBUser,
'pass' => $sNewDBPass,
'pass2' => $sNewDBPass
);
$sData2 = http_build_query($asData2);
$s = file_get_contents($sCP . $sTask2 . $sData2);
echo "$s\n";
$asData3 = array(
'user' => $sPrefix . $sNewDBUser,
'db' => $sPrefix . $sNewDB,
'update' => '',
'ALL' => 'ALL'
);
$sData3 = http_build_query($asData3);
$s = file_get_contents($sCP . $sTask3 . $sData3);
echo "$s\n";