santaklouse / hestiacp-api
PHP 的 HestiaCP API SDK
dev-main
2024-04-18 10:55 UTC
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.0
- nette/utils: ^3.2
- santaklouse/php-array-utils: dev-main
This package is auto-updated.
Last update: 2024-09-18 12:13:47 UTC
README
使用方法
- 安装
$ composer require santaklouse/hestiacp-api:dev-main
- 创建客户端
使用 API 密钥、用户名和密码是可能的,但强烈不建议,因为这不安全,并且将不再被支持。
use HestiaCP\Client; use HestiaCP\Authorization\Credentials; use HestiaCP\Authorization\Host; // You can choose to use an API Key or username and password (legacy) $credentials = new Credentials('Key:Secret'); $port = 8083; $host = new Host('https://server', $credentials, $port); $client = new Client($host);
- 用法
您可以发送预定义命令之一(或者您可以编写自己的命令,只需确保实现 HestiaCP\Command\ICommand
即可)。
$command = new SomeCommand(); $response = $client->send($command); echo $response->getResponseText();
预定义模块列表
用户
$userModule = $client->getModuleUser(); $userModule->list(); // returns all users with data $userModule->detail('admin'); // returns selected user with data $userModule->changePassword('admin', 'otherPa$$word'); $userModule->add('other_user', 'pa$$word', 'some@email.com'); $userModule->suspend('other_user'); $userModule->unsuspend('other_user'); $userModule->delete('other_user');
网络
$webModule = $client->getModuleWeb('admin'); // web module needs user $webModule->listDomains(); $webModule->addDomain('domain.com'); $webModule->addDomainLetsEncrypt('domain.com', 'www.domain.com'); // needs longer timeout $webModule->deleteDomainLetsEncrypt('domain.com'); $webModule->addDomainFtp('domain.com', 'test', 'pa$$word'); $webModule->changeDomainFtpPassword('domain.com', 'admin_test', 'otherPa$$word'); $webModule->changeDomainFtpPath('domain.com', 'admin_test', 'path/other'); $webModule->deleteDomainFtp('domain.com', 'admin_test'); $webModule->suspendDomain('domain.com'); $webModule->unsuspendDomain('domain.com'); $webModule->deleteDomain('domain.com');
邮件
$mailModule = $client->getModuleMail('admin'); // mail module needs user $mailModule->listDomains(); // returns mail domains from selected user $mailModule->addDomain('domain.com'); // add domain $mailModule->listAccounts('domain.com'); // returns accounts from selected user and domain $mailModule->listDomainDkim('domain.com'); $mailModule->listDomainDkimDns('domain.com'); $mailModule->addAccount('domain.com', 'info', 'pa$$word'); // add info@domain.com account $mailModule->changeAccountPassword('domain.com', 'info', 'otherPa$$word'); // change info@domain.com password $mailModule->suspendAccount('domain.com', 'info'); // suspend info@domain.com account $mailModule->unsuspendAccount('domain.com', 'info'); // unsuspend info@domain.com account $mailModule->deleteAccount('domain.com', 'info'); $mailModule->suspendDomain('domain.com'); $mailModule->unsuspendDomain('domain.com'); $mailModule->deleteDomain('domain.com');
数据库
$dbModule = $client->getModuleDatabase('admin'); $dbModule->add('database', 'dbuser', 'dbpass'); $dbModule->delete('admin_database'); $dbModule->deleteDatabases(); $dbModule->listDatabase('database'); $dbModule->listDatabases();
备份
$backupModule = $client->getModuleBackup('admin'); // backup module needs user $backupModule->backup(); // create a new backup $backupModule->delete('admin.2021-10-13_18-12-53.tar'); // delete an user backup $backupModule->deleteExclusions(); // delete all backup exclusions $backupModule->listBackups(); // returns the backups list $backupModule->listBackup('admin.2021-10-13_18-12-53.tar'); // returns backup parameters list $backupModule->listBackupExclusions(); // returns the backup exclusions list
DNS
$dnsModule = $client->getModuleDNS();