Membuat sub domain otomatis

Discussion in 'Reseller Web Hosting' started by webhostingwebid, 18 Aug 2015.

Thread Status:
Not open for further replies.
  1. webhostingwebid

    webhostingwebid Poster 2.0

    Messages:
    128
    Likes Received:
    24
    Trophy Points:
    18
    Hello sobat, saya mau share tentang cara membuat sub domain otomatis untuk pelanggan yang daftar dengan menggunakan CPanel.
    Kendala saya bagaimana cara membuat sub domain otomatis jika ada pelanggan yang daftar, namun dia tidak mempunyai domain sendiri ( alias menggunakan domain kami ). Seperti blogspot atau wordpress itu lho ..
    Apakah dengan menggunakan wildcard ? Namun, saya coba masih belum berhasil jika menggunakan wildcard untuk Sub Domain.
    Atau ada para sobat disini yang bisa set up menjadikan CPanel bisa buat untuk sub domain otomatis seperti layaknya blogspot/wordpress
     
    Last edited: 18 Aug 2015
  2. cLeo

    cLeo Poster 1.0

    Messages:
    53
    Likes Received:
    7
    Trophy Points:
    8
    WPMU?
     
  3. rudydevianto

    rudydevianto Expert 2.0

    Messages:
    852
    Likes Received:
    55
    Trophy Points:
    28
    Semacamnya sepertinya...
     
  4. Abang Noob

    Abang Noob Poster 2.0

    Messages:
    161
    Likes Received:
    22
    Trophy Points:
    18
    pengen TS ini macem WPMU yang otomatis pake mesin wordpress atau setiap subdomain maka akan otomatis ada public_html sendiri?
     
  5. webhostingwebid

    webhostingwebid Poster 2.0

    Messages:
    128
    Likes Received:
    24
    Trophy Points:
    18
    Iya betul, yang konfigurasinya agar setiap subdomain secara otomatis ada di public_html sendiri ?
    ketika seseorang daftar via billing whmcs, secara otomatis subdomain mereka terbuat.:113:
     
  6. FaFaFi Hosting

    FaFaFi Hosting Poster 2.0

    Messages:
    124
    Likes Received:
    8
    Trophy Points:
    18
    hehehehe kalau share saya sangka mau kasih tahu caranya :)
    pakai wildcard bisa tapi kalau semua subdomain mengarah ke 1 ip
    jadi cukup create account pakai subdomain tanpa perlu nambah pointer di DNS lagi.

    Kalau WPMU sistemnya dia tetap ada di satu public_html hanya nanti per nama subdomain akan dibantu oleh database WPMU sendiri
     
  7. webhostingwebid

    webhostingwebid Poster 2.0

    Messages:
    128
    Likes Received:
    24
    Trophy Points:
    18
    Kalau kita yang create sub domain, berarti tidak otomatis dong.
    Tambah bingung nih gue...
    Udah gini saja..., supaya lebih jelas caranya membuat layanan webhosting seperti blogspot ??, contohnya: subdomain.blogspot.com,
    Atau mungkin ada yang sudah pernah menggunakan CPanel dari Byethost, lha disitu kita sebagai reseller hosting bisa mengaktifkan secara otomatis fitur sub domain web kita
     
  8. FaFaFi Hosting

    FaFaFi Hosting Poster 2.0

    Messages:
    124
    Likes Received:
    8
    Trophy Points:
    18
  9. webhostingwebid

    webhostingwebid Poster 2.0

    Messages:
    128
    Likes Received:
    24
    Trophy Points:
    18
  10. SeoWaps

    SeoWaps Apprentice 1.0

    Messages:
    206
    Likes Received:
    31
    Trophy Points:
    28
    Ada dua cara untuk melakukan hal ini.

    1. Cara yang pertama saya memakai curl untuk membuat satu aplikasi yang secara otomatis login kedalam cpanel atau directadmin, kemudian create subdomain berdasarkan data yang diinputkan ke dalam form.

    2. Cara alternatif kedua adalah menggunakan php socket dengan memanfaatkan port 2082 (cpanel). Cara alternatif ini lebih menghemat resource ketimbang menggunakan curl.
    Pada dasarnya curl memang mengasyikan, namun, cara alternatif yang kedua lebih baik.
    Berikut adalah script lengkapnya :

    <?php

    // cpanel user
    define(‘CPANELUSER’,’user’);

    // cpanel password
    define(‘CPANELPASS’,’pass’);

    // name of the subdomains list file.
    // file format may be 1 column or 2 columns divided with semicilon (;)
    // Example for two columns:
    //?? rootdomain1;subdomain1
    //?? rootdomain1;subdomain2
    // Example for one columns:
    //?? subdomain1
    //?? subdomain2
    define(‘INPUT_FILE’,’domains.txt’);

    // cPanel skin (mainly “x3″)
    // to know it for sure
    define(‘CPANEL_SKIN’,’x3′);

    // Default domain (subdomains will be created for this domain)
    // Will be used if not passed via parameter and not set in subdomains file
    define(‘DOMAIN’,”);

    /////////////// END OF INITIAL SETTINGS ////////////////////////

    function getVar($name, $def = ”) {
    if (isset($_REQUEST[$name]) && ($_REQUEST[$name] != ”))
    return $_REQUEST[$name];
    else
    return $def;
    }

    $cpaneluser=getVar(‘cpaneluser’, CPANELUSER);
    $cpanelpass=getVar(‘cpanelpass’, CPANELPASS);
    $cpanel_skin = getVar(‘cpanelskin’, CPANEL_SKIN);

    if (isset($_REQUEST[“subdomain”])) {
    // get parameters passed via URL or form, emulate string from file
    $doms = array( getVar(‘domain’, DOMAIN) . “;” . $_REQUEST[“subdomain”]);
    if (getVar(‘domain’, DOMAIN) == ”) die(“You must specify domain name”);
    }
    else {
    // open file with domains list
    $doms = @file(INPUT_FILE);
    if (!$doms) {
    // file does not exist, show input form
    echo ”
    Cannot find input file with subdomains information. It is ok if you are not creating subdomains from file.<br>
    Tip: leave field empty to use default value you have specified in the script’s code.<br>
    <form method=’post’>
    Subdomain:<input name=’subdomain’><br>
    Domain:<input name=’domain’><br>
    cPanel User:<input name=’cpaneluser’><br>
    cPanel Password:<input name=’cpanelpass’><br>
    cPanel Skin:<input name=’cpanelskin’><br>
    <input type=’submit’ value=’Create Subdomain’ style=’border:1px solid black’>
    </form>”;
    die();
    }
    }

    // create subdomain
    function subd($host,$port,$ownername,$passw,$request) {

    $sock = fsockopen(‘localhost’,2082);
    if(!$sock) {
    print(‘Socket error’);
    exit();
    }

    $authstr = “$ownername:$passw”;
    $pass = base64_encode($authstr);
    $in = “GET $requestrn”;
    $in .= “HTTP/1.0rn”;
    $in .= “Host:$hostrn”;
    $in .= “Authorization: Basic $passrn”;
    $in .= “rn”;

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

    return $result;
    }

    foreach($doms as $dom) {
    $lines = explode(‘;’,$dom);
    if (count($lines) == 2) {
    // domain and subdomain passed
    $domain = trim($lines[0]);
    $subd = trim($lines[1]);
    }
    else {
    // only subdomain passed
    $domain = getVar(‘domain’, DOMAIN);
    $subd = trim($lines[0]);
    }
    /* http://[domainhere]:2082/frontend/x/subdomain/doadddomain.html?domain=[subdomain here]&rootdomain=[domain here] */
    $request = “/frontend/$cpanel_skin/subdomain/doadddomain.html?rootdomain=$domain&domain=$subd”;
    $result = subd(‘localhost’,2082,$cpaneluser,$cpanelpass,$request);
    $show = strip_tags($result);
    echo $show;
    }

    ?>

    Sebetulnya apa yang terjadi pada script alternatif pembuat subdomain ini?
    Bagaimana bisa sampai membuat sub domain sendiri tanpa melakukan login ke dalam cpanel lalu membuat sub domain??
    Saya akan coba jelaskan sedikit, lihat pada baris ini, karena script selebihnya cuma menginialisasi data yang diinputkan oleh user ke dalam form :

    function subd($host,$port,$ownername,$passw,$request) {

    $sock = fsockopen(‘localhost’,2082);
    if(!$sock) {
    print(‘Socket error’);
    exit();
    }

    $authstr = “$ownername:$passw”;
    $pass = base64_encode($authstr);
    $in = “GET $requestrn”;
    $in .= “HTTP/1.0rn”;
    $in .= “Host:$hostrn”;
    $in .= “Authorization: Basic $passrn”;
    $in .= “rn”;

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

    return $result;
    }

    barisan kode disini berfungsi untuk :

    $sock = fsockopen(‘localhost’,2082);
    if(!$sock) {
    print(‘Socket error’);
    exit();
    }

    1. Melakukan koneksi ke port lain, dalam hal ini 2082, 2082 merupakan port yang digunakan untuk mengakses cpanel.

    $authstr = “$ownername:$passw”;
    $pass = base64_encode($authstr);

    2. Masuk ke dalam halaman dengan menggunakan basic authentication. Basic authentication sendiri sebetulnya cuma kotak dialog yang tampil ketika anda masuk ke dalam cpanel anda, yang meminta anda untuk memasukkan username dan password, dan script pada baris ini mewakili anda yang menginputkan username dan password cpanel milik anda.

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

    3. Ketika kondisinya sudah benar, maka gunakan url yang variable nya di dapatkan dari function subd($host,$port,$ownername,$passw,$request) untuk membuat subdomain.

    Secara sederhananya bagaimana membuat sub domain, dengan memanfaatkan url? seperti ini :
    http://[domainhere]:2082/frontend/x/subdomain/doadddomain.html?domain=[subdomain here]&rootdomain=[domain here]
    namun setelah sebelumnya melakukan basic authentication.
    Lihat tanda x pada url di atas, ini bisa diganti dengan bentuk lain, karena sebetulnya x disini mewakili skin yang digunakan oleh pihak hosting, untuk hosting yang sering saya gunakan biasanya skinnya itu menggunakan bentuk x3, sehingga saya cukup mengganti x menjadi x3.

    Oke, saya rasa penjelasannya sudah mencukupi, jika cara saya kurang cocok, mohon maaf ...
     
Loading...
Thread Status:
Not open for further replies.

Share This Page

Loading...