Cảm ơn @Alex C, người đã đưa tôi đi đúng hướng. Những điều sau đây sẽ hoạt động với nhiều gói lưu trữ được chia sẻ, nhưng bạn sẽ muốn kiểm tra chính sách của họ về điều này trước tiên. Tôi đã viết lại cho tôi một phiếu hỗ trợ công nghệ và nói, "Bạn phải tự động hóa thông qua một tập lệnh cpanel." Vì vậy, đây là những gì đây.
Trong ví dụ dưới đây, tôi đã mua root.com làm tên miền gốc chính trong gói lưu trữ được chia sẻ của mình. Tôi muốn thiết lập cơ sở dữ liệu có tên "user_myexample" với mật khẩu "myexample" được chỉ định với đầy đủ đặc quyền cho người dùng "user_myexamp". Nếu tiền tố "user_" và "myexamp" trông kỳ lạ - đó là do cpanel có tiền tố dựa trên tài khoản người dùng của người dùng root trong cpanel và tên người dùng cơ sở dữ liệu chỉ có thể có tối đa 7 ký tự.
Để kết nối với Cpanel để thực hiện điều này, tôi đã nhập URL trang chủ của cpanel (thay đổi theo gói lưu trữ) để nó có thể được phân tích cú pháp và sử dụng lại. Ngoài ra, tôi đã cung cấp thông tin người dùng / pass cpanel root.com của mình.
Các câu lệnh echo chỉ là phản hồi đầu ra cho dù mỗi yêu cầu HTTP GET có hoạt động hay không. Bạn có thể muốn kiểm tra điều đó để xem liệu có điều gì bạn có thể phân tích cú pháp từ đầu ra đó để thành công / thất bại hay không.
Lưu ý rằng một số gói lưu trữ chặn file_get_contents kết nối với URL, vì vậy bạn có thể phải chuyển đổi bằng fopen ($ sURL, 'r') hoặc API Curl.
<?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";