Благодаря на @Alex C, който ме насочи към правилния път. Следното ще работи с много планове за споделен хостинг, но първо ще искате да проверите техните политики за това. Моят ми написа обратно в билет за техническа поддръжка и каза:"Трябва да автоматизирате чрез cpanel скрипт." И така, това е това.
В примера по-долу вече бих закупил root.com като основен основен домейн на моя споделен хостинг план. Бих искал да настроя база данни с име "user_myexample" с парола "myexample", присвоена с пълни привилегии на потребител "user_myexamp". Ако префиксът "user_" и "myexamp" изглеждат странни - това е, защото cpanel има префикс, базиран на потребителския акаунт на root потребител в cpanel, а потребителското име на базата данни може да бъде само 7 знака.
За да се свържа с Cpanel, за да се случи това, въведох URL адрес на началната страница на cpanel (който варира в зависимост от хостинг плана), за да може да бъде анализиран и използван повторно. Освен това предоставих информацията за потребителя/пропуска на cpanel на моя root.com.
Инструкциите за ехо са само изходният отговор дали всяка HTTP GET заявка е работила или не. Може да искате да проверите това, за да видите дали има нещо, което можете да анализирате от този изход за успех/неуспех.
Обърнете внимание, че някои хостинг планове блокират file_get_contents свързването с URL, така че може да се наложи да превключите с fopen($sURL, 'r') или 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";