Laravel Package for CPanel UAPI
Please consider starring the project to show your ❤️ and support.
This laravel package allows you to manage you CPanel based hosting using CPanel UAPI.
Some practical usages are:
- Programmatically create database, sub domains, emails or accounts etc
- Programmatically create database users
- Programmatically set privileges on database of any user
Learn more about at CPanel UAPI
Use following composer command to install the package
composer require webreinvent/laravel-cpanel
or
Add webreinvent/laravel-cpanel
as a requirement to composer.json
:
{
...
"require": {
...
"webreinvent/laravel-cpanel": "dev-master"
},
}
Update composer:
$ composer update
Add following service provider in config/app.php
/*
* Package Service Providers...
*/
'providers' => [
//...
WebReinvent\CPanel\CPanelServiceProvider::class,
//...
],
Run following command:
php artisan vendor:publish --provider="WebReinvent\CPanel\CPanelServiceProvider" --tag=config
CPANEL_DOMAIN=
CPANEL_PORT=
CPANEL_API_TOKEN=
CPANEL_USERNAME=
or
$cpanel = new CPanel($cpanel_domain=null, $cpanel_api_token=null, $cpanel_username=null, $protocol='https', $port=2083);
To generate CPANEL_API_TOKEN
, login to the CPanel >> SECURITY >> Manage API Tokens >> Create
.
Make sure you import:
use WebReinvent\CPanel\CPanel;
Database name should be prefixed with cpanel username cpanelusername_databasename
If your CPanel username is foo
then your database name
| should be foo_website
.
$cpanel = new CPanel();
$response = $cpanel->createDatabase('cpanelusername_databasename');
Find More Details at CPanel UAPI - Mysql::create_database
$cpanel = new CPanel();
$response = $cpanel->deleteDatabase('cpanelusername_databasename');
CPanel UAPI - Mysql::delete_database
$cpanel = new CPanel();
$response = $cpanel->listDatabases();
$cpanel = new CPanel();
$response = $cpanel->createDatabaseUser($username, $password);
$cpanel = new CPanel();
$response = $cpanel->deleteDatabaseUser($username);
$cpanel = new CPanel();
$response = $cpanel->setAllPrivilegesOnDatabase($database_user, $database_name);
Those were the available method but you can also call all the method available at CPanel UAPI using following method:
$cpanel = new CPanel();
$response = $cpanel->callUAPI($Module, $function, $parameters_array);
Example if you want to add new ftp
account, documetation is available at CPanel UAPI - Ftp::add_ftp then use the method as represented below:
$cpanel = new CPanel();
$Module = 'Ftp';
$function = 'add_ftp';
$parameters_array = [
'user'=>'ftp_username',
'pass'=>'ftp_password', //make sure you use strong password
'quota'=>'42',
];
$response = $cpanel->callUAPI($Module, $function, $parameters_array);
WebReinvent is a web agency based in Delhi, India. You'll find an overview of all our open source projects on github.
The MIT License (MIT). Please see License File for more information.