我可以通过PHP登录到cPanel吗?

我可以通过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 对于

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

我有cPanel用户名和密码,但文件修改我想通过PHP脚本没有图形化

我将使用文件管理器中的文件内容来修改文件

见以下代码:


是的,有一种方法,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;        
                }

            }