我想通过Php脚本登录cPanel,需要修改文件管理器中的一些文件。
我也有cPanel用户名和密码,但是我希望通过PHP脚本进行文件修改,无需图形化。
我将使用file_put_content从文件管理器修改文件。
见下面的代码:
答案 0 :(得分:1)
是的,有一种方法,CPanel有一个可供PHP使用的API。 docs的示例:
// Instantiate the CPANEL object.
require_once "/usr/local/cpanel/php/cpanel.php";
// Connect to cPanel - only do this once.
$cpanel = new CPANEL();
// Get domain user data.
$get_userdata = $cpanel->uapi(
'DomainInfo', 'domains_data',
array(
'format' => 'hash',
)
);
// Perform the desired actions.
答案 1 :(得分:0)
实现此功能所需的元素是 -
Server/WHM Username
Cpanel account Username
Server login URL
Server accesshash key
对于Accesshash密钥,可以从此处获取新的或已生成的Access密钥: - 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后,您可以在新标签页或相同标签中直接打开此标记,然后您必须登录。 它会生成与cpanel登录类似的会话,并为您提供所有特定的cpanel权限。
请记住,它只会使用指定的特定帐户登录,而不是为服务器内的所有cpanel帐户访问。