Skip to content

cPanel API which enables you to connect and carry out several common task in the cpanel

License

Notifications You must be signed in to change notification settings

adSesugh/CPanel-Api

Repository files navigation

Laravel CPanel API

Latest Version on Packagist Build Status Quality Score Total Downloads

Laravel Package for CPanel UAPI

Please consider starring the project to show your ❤️ and support.

This laravel package allows you to connect and manage you CPanel based hosting using CPanel UAPI.

Some practical usages are:

  • Create database, sub domains, emails accounts etc
  • Create database users
  • Set privileges on database of any user
  • List all email account of the specified domain
  • Check email account size
  • Increase email quota when need arises
  • Delete email account when necessary

Learn more about at CPanel UAPI

Installation

Step 1) Install the Package

Use following composer command to install the package

composer require keensoen/cpanel-api 

or Add keensoen/cpanel-api as a requirement to composer.json:

{
    ...
    "require": {
        ...
        "keensoen/cpanel-api": "^1.0"
    },
}

Update composer:

$ composer update

Step 2) Publish Configurations

Run following command:

php artisan vendor:publish --provider="Keensoen\CPanelApi\CPanelApiServiceProvider"

Step 3) Set CPanel details in .env

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.

Usages & available methods

Make sure you import:

use Keensoen\CPanelApi\CPanel;

To Get List of All Email Account in the CPanel

$cpanel = new CPanel();  
$response = $cpanel->getEmailAccounts();

Create Email Account

Your password must be eight character above and should contain alphanumeric and symbols. For example

$cpanel = new CPanel()
$username = 'john.dansy';
$password = 'ideaHeals@#12';
$response = $cpanel->createEmailAccount($username, $password);

To Delete Email Account

You will have to pass a full email address to be able to delete the account.

$cpanel = new CPanel()
$response = $cpanel->deleteEmailAccount('john.dansy@example.com');

To Get Email Account Disk Usage

You will have to pass a full email address of which you want to get disk usage.

$cpanel = new CPanel()
$response = $cpanel->getDiskUsage('john.dansy@example.com');

To Increase Email Account Quota

You will have to pass a full email address of which you want to get disk usage.

$cpanel = new CPanel()
$email = 'john.dansy@example.com';
$quota = 1024;
$response = $cpanel->increaseQuota($email,$quota);

To Create Database

Database name should be prefixed with cpanel username cpanelusername_databasename

If your CPanel username is surf then your database name | should be surf_website.

$cpanel = new CPanel();
$response = $cpanel->createDatabase('cpanelusername_databasename');

Find More Details at CPanel UAPI - Mysql::create_database

To Delete Database

$cpanel = new CPanel();  
$response = $cpanel->deleteDatabase('cpanelusername_databasename');

CPanel UAPI - Mysql::delete_database

To Get List of All Databases in the CPanel

$cpanel = new CPanel();  
$response = $cpanel->listDatabases();

To Create Database User

$cpanel = new CPanel();  
$response = $cpanel->createDatabaseUser($username, $password);

To Delete Database User

$cpanel = new CPanel();  
$response = $cpanel->deleteDatabaseUser($username);

To Give All Privileges to a Database User On a Database

$cpanel = new CPanel();  
$response = $cpanel->setAllPrivilegesOnDatabase($database_user, $database_name);

Using CPanel UAPI Methods

You can also call all the method available at CPanel UAPI using following method:

$cpanel = new CPanel();  
$response = $cpanel->callUAPI($Module, $function, $parameters);

for 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);

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email sesughagbadu@yahoo.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

cPanel API which enables you to connect and carry out several common task in the cpanel

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages