Dzięki @Alex C, który wprowadził mnie na właściwe tory. Poniższe zasady będą działać z wieloma współdzielonymi planami hostingu, ale najpierw sprawdź ich zasady. Mój odpisał mi w zgłoszeniu do pomocy technicznej i powiedział:„Musisz zautomatyzować za pomocą skryptu cpanel”. A więc o to właśnie chodzi.
W poniższym przykładzie kupiłbym już root.com jako główną domenę główną mojego współdzielonego planu hostingowego. Chciałbym skonfigurować bazę danych o nazwie „user_myexample” z hasłem „myexample” przypisanym z pełnymi uprawnieniami użytkownikowi „user_myexamp”. Jeśli prefiks „user_” i „myexamp” wyglądają dziwnie – to dlatego, że cpanel ma prefiks oparty na koncie użytkownika root w cpanel, a nazwa użytkownika bazy danych może mieć maksymalnie 7 znaków.
Aby połączyć się z Cpanelem, aby to się stało, wprowadziłem adres URL strony głównej cpanel (który różni się w zależności od planu hostingowego), aby można go było przeanalizować i ponownie wykorzystać. Podałem również informacje o użytkowniku/hasłach cpanelu mojego root.com.
Instrukcje echo są tylko odpowiedzią wyjściową, niezależnie od tego, czy każde żądanie HTTP GET zadziałało, czy nie. Możesz to sprawdzić, aby zobaczyć, czy jest coś, co możesz przeanalizować z tego wyniku pod kątem sukcesu/porażki.
Zwróć uwagę, że niektóre plany hostingowe blokują file_get_contents łączenie się z adresem URL, więc być może będziesz musiał przełączyć się za pomocą fopen($sURL, 'r') lub Curl API.
<?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";