Unofficial CPanel wrapper for shared hosting. For Laravel.
composer require akhaled/cpanel-api
Add following configuration to .env
file
CPANEL_USER=xxxxxx
CPANEL_PASSWORD=xxxxx
CPANEL_HOST=123.456.789
CPANEL_SKIN=paper_lantern
CPANEL_DEFAULT_DOMAIN_DIR=public_html
CPANEL_TOKEN=xxxxx
CPANEL_DOMAIN=example.com
$domain = 'example.com';
Akhaled\CPanelAPI\Facades\CPanelAPI::domain()->create($domain);
$domain = 'example.com';
Akhaled\CPanelAPI\Facades\CPanelAPI::domain()->delete($domain);
$domain = 'example.com';
$subdomain = 'example';
$dir = 'public_html'; // optional, default config('cpanel.default_dir')
Akhaled\CPanelAPI\Facades\CPanelAPI::addonDomain()->create($domain, $subdomain, $dir);
$domain = 'example.com';
$subdomain = 'example_base.com';
Akhaled\CPanelAPI\Facades\CPanelAPI::addonDomain()->delete($domain, $subdomain);
// subdomain: beta.example.com
$domain = 'example.com';
$subdomain = 'beta';
$dir = 'public_html'; // optional, default config('cpanel.default_dir')
Akhaled\CPanelAPI\Facades\CPanelAPI::subdomain($domain)->create($subdomain, $dir);
// subdomain: beta.example.com
$domain = 'example.com';
$subdomain = 'beta';
Akhaled\CPanelAPI\Facades\CPanelAPI::subdomain($domain)->delete($subdomain);
$db_name = 'fresh_database';
Akhaled\CPanelAPI\Facades\CPanelAPI::database()->create($db_name);
$db_name = 'my_old_database';
Akhaled\CPanelAPI\Facades\CPanelAPI::database()->delete($db_name);
$db_user = 'my_old_user_name';
$db_password = 'raw_password';
Akhaled\CPanelAPI\Facades\CPanelAPI::databaseUser()->create($db_user, $db_password);
$db_user = 'user_name';
$db_name = 'database';
Akhaled\CPanelAPI\Facades\CPanelAPI::databaseUser()->addToDatabase($db_user, $db_name);
$db_user = 'my_old_user_name';
Akhaled\CPanelAPI\Facades\CPanelAPI::databaseUser()->delete($db_user);
CPanel package is open-sourced software licensed under the MIT license.