Terima kasih kepada @Alex C yang membuat saya berada di jalur yang benar. Berikut ini akan berfungsi dengan banyak paket hosting bersama, tetapi Anda harus memeriksa kebijakan mereka tentang ini terlebih dahulu. Milik saya menulis saya kembali di tiket dukungan teknis dan berkata, "Anda harus mengotomatisasi melalui skrip cpanel." Jadi, begitulah.
Pada contoh di bawah ini, saya akan membeli root.com sebagai domain root utama dari paket hosting bersama saya. Saya ingin mengatur database bernama "user_myexample" dengan kata sandi "myexample" yang diberikan dengan hak penuh untuk pengguna "user_myexamp". Jika awalan "user_" dan "myexamp" terlihat aneh -- itu karena cpanel memiliki awalan berdasarkan akun pengguna pengguna root ke dalam cpanel, dan nama pengguna database hanya boleh maksimal 7 karakter.
Untuk terhubung ke Cpanel untuk mewujudkannya, saya memasukkan URL beranda cpanel (yang bervariasi dengan paket hosting) sehingga dapat diuraikan dan digunakan kembali. Juga, saya memberikan informasi pengguna/pass cpanel root.com saya.
Pernyataan gema hanyalah respons keluaran apakah setiap permintaan HTTP GET berfungsi atau tidak. Anda mungkin ingin memeriksanya untuk melihat apakah ada sesuatu yang dapat Anda urai dari hasil tersebut untuk keberhasilan/kegagalan.
Perhatikan beberapa paket hosting memblokir file_get_contents yang terhubung ke URL, jadi Anda mungkin harus beralih dengan fopen($sURL, 'r') atau 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";