PHP cPanel 创建子域

csf*_*816 1 php subdomain cpanel

所以我试图使用 PHP 为我的网站自动创建子域。我尝试了以下代码,但它给了我一个301错误并将我重定向到我的 cPanel 登录

function createDomain($domain) {
    // your cPanel username
    $cpanel_user = 'User';

    // your cPanel password
    $cpanel_pass = 'Pass';

    // your cPanel skin
    $cpanel_skin = 'paper_lantern';

    // your cPanel domain
    $cpanel_host = 'example.com';

    // subdomain name
    $subdomain = $domain;

    // directory - defaults to public_html/subdomain_name
    $dir = 'public_html/user_site';

    // create the subdomain

    $sock = fsockopen($cpanel_host,2083);
    if(!$sock) {
        print('Socket error');
        exit();
    }

    $pass = base64_encode("$cpanel_user:$cpanel_pass");
    $in = "GET /frontend/$cpanel_skin/subdomain/doadddomain.html?rootdomain=$cpanel_host&domain=$subdomain&dir=$dir\r\n";
    $in .= "HTTP/1.0\r\n";
    $in .= "Host:$cpanel_host\r\n";
    $in .= "Authorization: Basic $pass\r\n";
    $in .= "\r\n";

    fputs($sock, $in);
        while (!feof($sock)) {
        $result .= fgets ($sock,128);
    }
    fclose($sock);

    return $result;
}
Run Code Online (Sandbox Code Playgroud)

就像我说的那样,它给了我一个301错误并重定向到example.com:2083而不是仅仅在代码中执行它而不是让我手动登录到 cPanel。任何帮助将不胜感激!

csf*_*816 5

回答:在摆弄我的代码后,我意识到端口2082和端口2083是相同的,只是2082没有,https://所以我将端口更改为2082并且它工作了!

代码:

function createDomain($domain) {
    // your cPanel username
    $cpanel_user = 'User';

    // your cPanel password
    $cpanel_pass = 'Pass';

    // your cPanel skin
    $cpanel_skin = 'paper_lantern';

    // your cPanel domain
    $cpanel_host = 'example.com';

    // subdomain name
    $subdomain = $domain;

    // directory - defaults to public_html/subdomain_name
    $dir = 'public_html/user_site';

    // create the subdomain

    $sock = fsockopen($cpanel_host,2082);
    if(!$sock) {
        print('Socket error');
        exit();
    }

    $pass = base64_encode("$cpanel_user:$cpanel_pass");
    $in = "GET /frontend/$cpanel_skin/subdomain/doadddomain.html?rootdomain=$cpanel_host&domain=$subdomain&dir=$dir\r\n";
    $in .= "HTTP/1.0\r\n";
    $in .= "Host:$cpanel_host\r\n";
    $in .= "Authorization: Basic $pass\r\n";
    $in .= "\r\n";

    fputs($sock, $in);
        while (!feof($sock)) {
        $result .= fgets ($sock,128);
    }
    fclose($sock);

    return $result;
}
Run Code Online (Sandbox Code Playgroud)