- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想知道是否有人在共享托管服务提供商(在我的例子中是 Siteground)上实现了对 cPanel 的 PHP 应用程序级访问。我一直在查看 LiveAPI PHP 网站上的文档,它提到它涉及管理主 cPanel 安装目录中的一些文件。我找不到对任何可下载资源的引用,因此,如果可以提供指向这些资源的链接以及您如何执行实现的示例,那就太好了。
我希望以编程方式(在 PHP 中)在 cPanel 中创建子域并为其提供相应的路由目录。
我发现了这个相关问题,但它导致死胡同,因为主要的 PHP 类链接不起作用
https://stackoverflow.com/questions/7549015/php-create-subdomain-over-cpanel-api
最佳答案
Citizen Kepler 的链接现已失效,github 上的 XMLAPI here已弃用。
但是,结合给出的代码 here用于身份验证和 here为了添加子域,为我们提供了以下脚本,它似乎在共享主机上工作得很好:
<?php
$cpanelusername = "example";
$cpanelpassword = "**********";
$subdomain = 'newsubdomain';
$domain = 'example.com';
$directory = "/public_html/$subdomain"; // A valid directory path, relative to the user's home directory. Or you can use "/$subdomain" depending on how you want to structure your directory tree for all the subdomains.
$query = "https://$domain:2083/json-api/cpanel?cpanel_jsonapi_func=addsubdomain&cpanel_jsonapi_module=SubDomain&cpanel_jsonapi_version=2&domain=$subdomain&rootdomain=$domain&dir=$directory";
$curl = curl_init(); // Create Curl Object
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0); // Allow self-signed certs
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0); // Allow certs that do not match the hostname
curl_setopt($curl, CURLOPT_HEADER,0); // Do not include header in output
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); // Return contents of transfer on curl_exec
$header[0] = "Authorization: Basic " . base64_encode($cpanelusername.":".$cpanelpassword) . "\n\r";
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); // set the username and password
curl_setopt($curl, CURLOPT_URL, $query); // execute the query
$result = curl_exec($curl);
if ($result == false) {
error_log("curl_exec threw error \"" . curl_error($curl) . "\" for $query");
// log error if curl exec fails
}
curl_close($curl);
print $result;
?>
结果应该是这样的:
{"cpanelresult":{"func":"addsubdomain","event":{"result":1},"apiversion":2,"module":"SubDomain","data":[{"reason":"The subdomain “newsubdomain.example.com” has been added.","result":1}],"preevent":{"result":1},"postevent":{"result":1}}}
然后要删除子域,请运行相同的脚本,但使用此查询:
$deletesub = "https://$domain:2083/json-api/cpanel?cpanel_jsonapi_func=delsubdomain&cpanel_jsonapi_module=SubDomain&cpanel_jsonapi_version=2&domain=".$subdomain.'.'.$domain."&dir=$directory"; //Note: To delete the subdomain of an addon domain, separate the subdomain with an underscore (_) instead of a dot (.). For example, use the following format: subdomain_addondomain.tld
要删除目录(包括其所有内容),请运行:
$deletedir = "https://$domain:2083/json-api/cpanel?cpanel_jsonapi_module=Fileman&cpanel_jsonapi_func=fileop&op=unlink&sourcefiles=$directory";
关于php - 在 Siteground 共享主机帐户上使用 cPanel LiveAPI PHP 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18992945/
我的后端代码位于 siteground 服务器上,数据库位于 AWS RDS 上。但是,当在我的服务器上调用 API 时,从 RDS 向 Siteground 获取响应需要花费太多时间。 我们尝试了一
我在我的离线电脑上使用 php 和 redis 开发了一个网站,现在我想在 siteground 上托管它。但是我真的不能像在我的电脑上那样安装 redis-cli 软件,对吧!?那么如何在站点上真正
我有一个 WordPress 网站存储库,其中包含两个子模块,一个用于连接到主题,一个用于 pull 特殊插件。目前,这两个子模块都以单一存储库的形式托管在Azure DevOps上。我可以轻松地克隆
我想知道是否有人在共享托管服务提供商(在我的例子中是 Siteground)上实现了对 cPanel 的 PHP 应用程序级访问。我一直在查看 LiveAPI PHP 网站上的文档,它提到它涉及管理主
我正在使用 create-react-app 构建一个 React 项目,并试图弄清楚如何将我的代码部署到 Siteground 上的托管服务器。 有人知道最好的方法吗?我是否通过 FTP 导入构建文
我想用 mailgun 处理交易电子邮件。 并使用 gsuite 作为我的“普通”商业电子邮件提供商。 在每个 mailgun 支持页面上,您都会看到以下消息: 警告 如果您已经有其他提供商处理您的域
我是一名优秀的程序员,十分优秀!