nilemin/php-http-virtualmin-api
Composer 安装命令:
composer require nilemin/php-http-virtualmin-api
包简介
PHP implementation of Virtualmin's remote api
README 文档
README
Note: This is not a full featured implementation of the API. However it is really easy to add new functionalities to the library if needed.
Requirements
PHP >= 7.0
Install
Composer
{ "require": { "nilemin/php-http-virtualmin-api": ">=v1.0" } }
Note: Full documentation will be added soon.
API examples
use Nilemin\Virtualmin\DNS\DNSRecord; use Nilemin\Virtualmin\Managers\DNS\DNSRecordTypes; use Nilemin\Virtualmin\Managers\Server\ServerTypes; use Nilemin\Virtualmin\Managers\SSL\CSRInfo; use Nilemin\Virtualmin\Virtualmin; use Nilet\Components\Configuration\Config; use Nilet\Components\FileSystem\Directory; require_once "vendor/autoload.php"; $config = new Config(); $config->setConfigDir(new Directory(__DIR__ . "/config")); $api = new Virtualmin("domain.com", 1221, "root", "password", $config); $domain = "domain.com";
Email and Ftp accounts
$emailManager = $api->createEmailManager();
$ftpManager = $api->createFtpManager();
$emailManager->createEmailAccount($domain, "emailaccount1", "123", "Real name", 5);
$ftpManager->createFtpAccount($domain, "onlyftp4", "123");
$emailManager->changeEmailAccountQuota($domain, "emailaccount1", 10);
$emailManager->disableEmailAccount($domain, "emailaccount1");
$ftpManager->disableFtpAccount($domain, "onlyftp1");
$emailManager->enableEmailAccount($domain, "emailaccount1");
$ftpManager->enableFtpAccount($domain, "onlyftp1");
$emailManager->fetchEmailAccounts($domain);
$ftpManager->fetchFtpAccounts($domain);
$emailManager->deleteEmailAccount($domain, "emailaccount1");
$ftpManager->deleteFtpAccount($domain, "onlyftp1");
Database
$dBManager = $api->createDatabaseManager(); $dBManager->createDatabase($domain, "mysqldbtest"); $dBManager->deleteDatabase($domain, "mysqldbtest"); $dBManager->fetchDatabasesNames($domain); $dBManager->fetchDatabases($domain); $dBManager->grantDatabaseAccess($domain, "emailaccount1", "test2"); $dBManager->grantDatabaseAccess($domain, "onlyftp1", "test1"); $dBManager->removeDatabaseAccess($domain, "emailaccount1", "test2"); $dBManager->removeDatabaseAccess($domain, "onlyftp1", "test1");
Virtual server
$vsManager = $api->createVirtualServerManager(); $vsManager->changeServerName($domain, "newdomain.org"); $vsManager->changeAdminPassword($domain, "7777"); $options = [ "dns", "mail" ]; $vsManager->createSubServer("sub1.domain.org", $domain, "Sub 1", $options); $vsManager->deleteServer("sub1.domain.org"); $vsManager->fetchAddonServers("domain"); $vsManager->fetchSubServers("domain"); $vsManager->fetchSubServersNames($domain, "domain"); $vsManager->fetchAddonServersNames($domain, "domain"); $vsManager->fetchServer($domain, ServerTypes::TOP_LEVEL_SERVER); $vsManager->createServerAlias("domain-alias.org", "domain.org", ""); $vsManager->fetchAliasServers("domain"); $vsManager->addServerRedirect("domain.org", "/", "http://domain-redirect.org"); $vsManager->addServerRedirect("domain.org", "/asas", "http://domain-redirect-asas.org"); $vsManager->fetchServerRedirects($domain); $vsManager->deleteServerRedirect($domain, "/"); $vsManager->deleteServerRedirect($domain, "/asas");
DNS
$dnsManager = $api->createDnsManager(); $dnsManager->addSpfHostnames($domain, ["domain-spf-test.org", "192.168.1"]); $dnsManager->deleteSpfHostnames($domain, ["domain-spf-test.org", "192.168.1"]); $dnsRecords = [ new DNSRecord("TXT-test1", DNSRecordTypes::TXT, "TXT test value", 666), new DNSRecord("TXT-test2", DNSRecordTypes::TXT, "TXT test value", 777), new DNSRecord("TXT-test4", DNSRecordTypes::TXT, "TXT test value", 777) ]; $dnsManager->deleteDnsRecords($domain, $dnsRecords); $dnsManager->addDnsRecords($domain, $dnsRecords); $dnsManager->fetchDNSRecords($domain); $dnsManager->fetchSPFOptions($domain);
SSL
$sslManager = $api->createSslManager(); $csrInfo = new CSRInfo(); $csrInfo->setOrganization("Organization") ->setOrganizationUnit("unit") ->setCountryCode("dk") ->setState("MidtJylland") ->setCity("Viborg") ->setEmail("test@email.com") ->setDomainName($domain); echo $sslManager->generateCSR($csrInfo); echo $sslManager->getCSRContent($domain);
PHP
$phpManager = $api->createPhpManager(); $phpManager->fetchPHPDirectories($domain); $phpManager->fetchInstalledPHPVersions(); $phpManager->addPHPDirectory($domain, "test_php_dr2", "7.0"); $phpManager->addPHPDirectory($domain, "test_php_dr3", "5.6"); $phpManager->deletePHPDirectory($domain, "test_php_dr2"); $phpManager->deletePHPDirectory($domain, "test_php_dr3"); $phpManager->fetchPHPIniVars($domain, "7.0", $config->get("config")["userModifiableIniVars"]); $phpManager->modifyPHPIniVars($domain, "7.0", ["max_execution_time" => 60, "display_errors" => 0]);
Script installers
$scriptManager = $api->createScriptsManager(); $scriptManager->installCMS($domain, $config->get("config")["scripts"]["cms"]["wordpress"]); $scriptManager->installPHPMyAdmin($domain, $config->get("config")["scripts"]["dbPanels"]["phpmyadmin"]); $scriptManager->deleteScript($domain, "phpmyadmin"); $scriptManager->fetchInstalledScripts($domain); $scriptManager->fetchInstalledScript($domain, "wordpress");
nilemin/php-http-virtualmin-api 适用场景与选型建议
nilemin/php-http-virtualmin-api 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 85 次下载、GitHub Stars 达 13, 最近一次更新时间为 2018 年 04 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 nilemin/php-http-virtualmin-api 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 nilemin/php-http-virtualmin-api 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 85
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 13
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-04-22