我可以通过PHP登录cPanel吗?

时间:2017-06-24 06:53:58

标签: php curl cpanel cpanel-xmlapi

我想通过Php脚本登录cPanel,需要修改文件管理器中的一些文件。

我也有cPanel用户名和密码,但是我希望通过PHP脚本进行文件修改,无需图形化。

我将使用file_put_content从文件管理器修改文件。

见下面的代码:

enter image description here

2 个答案:

答案 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帐户访问。