Skocz do zawartości

Automatyczne dodawanie subdomen w cpanelu, czy da radę?


Delta

Rekomendowane odpowiedzi

Znalazłem na necie skrypt do automatycznego dodawania subdomen w cpanelu jednak jak dodaję subdomeny przez cpanel to tworzy mi od razu katalogi na serwerze. Skrypt już ich nie tworzy.

Czy spotkał się ktoś z tym skryptem i może poradzić czy można tutaj coś dorzucić aby też tworzył od razu katalogi?

<?php

###############################################################
# cPanel Subdomains Creator 1.1
###############################################################
# Visit [url="https://www.zubrag.com/scripts/"]https://www.zubrag.com/scripts/[/url] for updates
###############################################################
#
# Can be used in 3 ways:
# 1. just open script in browser and fill the form
# 2. pass all info via url and form will not appear
# Sample: cpanel_subdomains.php?cpaneluser=USER&cpanelpass=PASSWORD&domain=DOMAIN&subdomain=SUBDOMAIN
# 3. list subdomains in file. In this case you must provide all the defaults below
#
# Note: you can omit any parameter, except "subdomain".
# When omitted, default value specified below will be taken
###############################################################

// 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 "x")
// Check [url="https://www.zubrag.com/articles/determine-cpanel-skin.php"]https://www.zubrag.com/articles/determine-cpanel-skin.php[/url]
// to know it for sure
define('CPANEL_SKIN','x');

// 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 $request\r\n";
 $in .= "HTTP/1.0\r\n";
 $in .= "Host:$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;
}

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]);
 }
 // https://[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;
}

?>

Skrypt poniżej służy do kasowania subdomen. Jest to praktycznie ten sam skrypt co wyżej, różni się chyba tylko jedną linijką z końca.

Jednak tutaj z kolei problem polega na tym, że jeżeli chcemy skasować subdomeny, które są dodane na domenie: Addon domain, to ich nie kasuje i pokazuje komunikat, ze skasował wskazane subdomeny z domeny podpiętej jako główna na serwerze (które nie istnieją).

Może ma ktoś też jakieś doświadczenia w tej sprawie?

<?php

###############################################################
# Delete Subdomains on cPanel 1.0
###############################################################
# Visit [url="https://www.zubrag.com/scripts/"]https://www.zubrag.com/scripts/[/url] for updates
###############################################################
#
# Can be used in 3 ways:
# 1. just open script in browser and fill the form
# 2. pass all info via url and form will not appear
# Sample: subdel.php?cpaneluser=USER&cpanelpass=PASSWORD&domain=DOMAIN&subdomain=SUBDOMAIN
# 3. list subdomains in file. In this case you must provide all the defaults below
#
# Note: you can omit any parameter, except "subdomain".
# When omitted, default value specified below will be taken
###############################################################

// 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 "x")
// Check [url="https://www.zubrag.com/articles/determine-cpanel-skin.php"]https://www.zubrag.com/articles/determine-cpanel-skin.php[/url]
// to know it for sure
define('CPANEL_SKIN','x');

// Default domain (subdomains will be deleted from 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 deleting 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='Delete Subdomain' style='border:1px solid black'>
</form>";
   die();
 }
}

// delete 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 $request\r\n";
 $in .= "HTTP/1.0\r\n";
 $in .= "Host:$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;
}

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]);
 }
 $request = "/frontend/$cpanel_skin/subdomain/dodeldomain.html?domain=".$subd."_".$domain;
 $result = subd('localhost',2082,$cpaneluser,$cpanelpass,$request);
 $show = strip_tags($result);
 echo $show;
}

?>

Odnośnik do komentarza
Udostępnij na innych stronach

Dorzuciłem sobie na końcu kodu linijkę:

mkdir ("/public_html/dir", 0700);

ale zawiesiło mi serwer na kilka minut, więc chyba coś niepoprawnie zrobiłem.

$request = "/frontend/$cpanel_skin/subdomain/doadddomain.html?rootdomain=$domain&domain=$subd"; 
$result = subd('localhost',2082,$cpaneluser,$cpanelpass,$request); 
$show = strip_tags($result); 
echo $show;

mkdir ("/public_html/dir", 0700);

Odnośnik do komentarza
Udostępnij na innych stronach

  • 5 miesięcy temu...

Moze ktos dokladnie napisac jak to uruchomic ??

1.Wgrywam plik cpanel_subdomains.php?cpaneluser=dawstawr&cpanelpass=clzIww2U6j&domain=4wm.pl&subdomain=test16na serwer do głwonej domeny

2. Uzupelniam plik domains.txt wedlug schematu: cpanel_subdomains.php?cpaneluser=MÓJ NICK&cpanelpass=MOJE HASLO&domain=DOMENA&subdomain=WYBRANA SUBDOMENA

Wgrywam plik na serwer

otwieram w przegladrce www.mojadomena.pl/cpanel_subdomains.php?

I wyskakuje mi cos takiego ..:/

HTTP/1.1 401 Access Denied Still Working WWW-Authenticate: Basic realm="cPanel" Connection: close Set-Cookie:

logintheme=cpanel; path=/ Set-Cookie: cprelogin=no; path=/ Set-Cookie: cpsession=closed; path=/ Server: cpsrvd/11.23.6

Content-type: text/html cPanel® 11 Login Username Password Password Reset Username © cPanel, Inc. 2006-2008

Jak uruchomic ten script aby tworzyl subdomeny ?

Prosze o pomoc i z gory dzieki.

Zobacz koniecznie Blog Doroty oraz pamiętaj że do gry w paintball będą Ci potrzebne kulki do paintballa.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności