我可以通过PHP登录到cPanel吗?
我想通过Php脚本登录cPanel,需要修改文件管理器中的一些文件 我有cPanel用户名和密码,但文件修改我想通过PHP脚本没有图形化 我将使用文件管理器中的文件内容来修改文件 见以下代码:我可以通过PHP登录到cPanel吗?,php,curl,cpanel,cpanel-xmlapi,Php,Curl,Cpanel,Cpanel Xmlapi,我想通过Php脚本登录cPanel,需要修改文件管理器中的一些文件 我有cPanel用户名和密码,但文件修改我想通过PHP脚本没有图形化 我将使用文件管理器中的文件内容来修改文件 见以下代码: 是的,有一种方法,CPanel有一个可供PHP使用的API。示例来自: 实现此功能所需的要素包括—— Server/WHM Username Cpanel account Username Server login URL Server accesshash key 对于
是的,有一种方法,CPanel有一个可供PHP使用的API。示例来自:
实现此功能所需的要素包括——
Server/WHM Username
Cpanel account Username
Server login URL
Server accesshash key
对于Accesshash密钥,新的或已经生成的访问密钥可以从这里获得:-
WHM>远程访问密钥区域和位于该区域的访问密钥。
或者它应该位于以下路径“/usr/local/cpanel/bin/realmkaccesshash
获得所有这些详细信息后,您可以按照以下代码步骤操作:-
$query = "https://$server_login_link:2087/json-api/create_user_session?api.version=1&user=$cpanel_user&service=cpaneld";
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
$header[0] = "Authorization: WHM $whmusername:" . preg_replace("'(\r|\n)'","",$hash);
curl_setopt($curl,CURLOPT_HTTPHEADER,$header);
curl_setopt($curl, CURLOPT_URL, $query);
$result = curl_exec($curl);
if ($result == false) {
// your error log
}
if($result){
$decoded_response = json_decode( $result, true );
if(isset($decoded_response['data']) && !empty($decoded_response['data'])){
$url = $decoded_response['data']['url'];
return $url;
}
}
获得此URL后,您可以直接在新选项卡或同一选项卡中打开此URL,并且必须登录。
它生成与cpanel登录类似的会话,并为您提供所有特定的cpanel权限
请记住,它只使用给定的特定帐户登录您,而不是对服务器中的所有cpanel帐户进行访问。注意,cpanel可以做到这一点,您不能只使用php。但它也不需要访问cpanel。设置一个cron作业,您只需使用php中的
ftp
命令即可连接到服务器。请阅读-摘要是,这是这不是向志愿者致辞的理想方式,可能会对获得答案产生反作用。请不要将此添加到您的问题中。cpanel.php类在哪里?我看到了您给定的文档链接,但还有一个问题,我无法定义该类。还有一件事,我只能通过使用此类获取域信息,实际上我想修改的服务器文件在通过php登录到cpanel后创建网站。谢谢,文件的可能位置是/usr/local/cpanel/php/cpanel.php。请阅读文档,将其所有相关内容粘贴到此处不会有任何好处。您也可以使用API执行文件操作,文档中再次介绍了该API:
$query = "https://$server_login_link:2087/json-api/create_user_session?api.version=1&user=$cpanel_user&service=cpaneld";
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
$header[0] = "Authorization: WHM $whmusername:" . preg_replace("'(\r|\n)'","",$hash);
curl_setopt($curl,CURLOPT_HTTPHEADER,$header);
curl_setopt($curl, CURLOPT_URL, $query);
$result = curl_exec($curl);
if ($result == false) {
// your error log
}
if($result){
$decoded_response = json_decode( $result, true );
if(isset($decoded_response['data']) && !empty($decoded_response['data'])){
$url = $decoded_response['data']['url'];
return $url;
}
}