Написал скрипт на php для массового создания доменов в панели управления сайтами ISP Manager 5. Помимо пятой версии ISP должна поддерживаться и четвертая, но я не проверял ибо не на чем.
Домены должны лежать рядом со скриптом в файле domains.txt. Остальные настройки внутри скрипта. Скрипт консольный, не веб. Запускается так:
1 |
php isp_massdomains.php |
Если пароль от ISP панели не указан, то он будет запрашиваться в командной строке.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
<?php // Адрес панели ISP Manager $isp_url = "https://192.168.0.1:1500/ispmgr"; // Пользователь ISP $isp_login = "root"; // Его пароль $isp_pass = ""; // Это пятая версия ISP? $isp5 = true; // Пользователь-владелец домена $domain_owner = "user"; // IP домена, можно оставить пустым $domain_ip = "192.168.0.2"; // Файл с доменами для добавления $domains = "domains.txt"; if($isp_pass == "") { print "Please enter the ISP password for $isp_login: "; $isp_pass = trim(fgets(STDIN)); if($isp_pass == "") die("Password is empty\r\n"); } $domain_array = file($domains); $ch = curl_init(); curl_setopt_array($ch, array(CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_SSL_VERIFYPEER => false)); foreach($domain_array as $domain) { $domain = trim($domain); if ($isp5) { $params['out'] = 'json'; $params['func'] = 'webdomain.edit'; $params['sok'] = 'yes'; $params['name'] = $domain; $params['aliases'] = (strpos($domain, 'www.') === 0 ? substr($domain, 4) : 'www.' . $domain); $params['owner'] = $domain_owner; $params['php'] = 'on'; $params['php_enable'] = 'on'; $params['php_mode'] = 'php_mode_mod'; $params['cgi'] = (strpos($php, 'cgi') !== null ? 'on' : 'off'); $params['ipaddrs'] = $domain_ip; $params['ipsrc'] = ($domain_ip == '') ? 'auto' : 'manual'; $params['email'] = 'webmaster@' . $domain; } else { $params['out'] = 'json'; $params['func'] = 'wwwdomain.edit'; $params['sok'] = 'yes'; $params['domain'] = $domain; $params['alias'] = (strpos($domain, 'www.') === 0 ? substr($domain, 4) : 'www.' . $domain); $params['owner'] = $domain_owner; $params['docroot'] = 'auto'; $params['php'] = 'phpmod'; // phpmod (php как модуль Apache); phpcgi (php как CGI); phpfcgi (php как fastCGI) $params['cgi'] = (strpos($php, 'cgi') !== null ? 'on' : 'off'); $params['ip'] = $domain_ip; $params['admin'] = 'webmaster@' . $domain; } $url = $isp_url . '?authinfo=' . urlencode($isp_login) . ':' . urlencode($isp_pass) . '&' . http_build_query($params); curl_setopt($ch, CURLOPT_URL, $url); $response = (array)json_decode(curl_exec($ch), true); $result = "ERROR"; if(isset($response['error'])) { $result = $response['error']['msg']; } else if((isset($response['result']) && $response['result'] == 'OK') || isset($response['ok'])) { $result = "OK"; } echo "$domain\t$result\r\n"; } curl_close($ch); ?> |
Можете подробней описать как запустить скрипт. Так сказать для нубов)
Нужно скачать php для windows или, если у Вас установлен Денвер, то воспользоваться php оттуда. Как запускать описано в посте
Автор спасибо! Реально крутой скрипт!http://www.denwer.ru/ и устанавливаете на свой компhttp://www.test1.ru/isp_massdomains.php
Более подробно по использованию, чтобы было понятно для тех, кто даже не знаком с Денвером.
1. Скачиваете Denwer отсюда:
2. У себя на компе в папке C://WebServers/home/test1.ru/www/ удаляете все, создаете здесь файлы domains.txt и isp_massdomains.php В первый пишете домены для добавления, во второй копируете вышеприведенный код, меняя данные на свои. Здесь: // Пользователь ISP
$isp_login = “root”; обязательно должен быть root, иначе не заработает (по крайней мере у меня так).
3. Запускаете Денвер (ярлык Start Denwer)
4. Переходите в браузере по адресу
выдается сообщение о ошибках добавления: domain1.ru ERROR domain2.ru ERROR…
НО! домены добавляются, все ОК. По крайней мере, опять же, это у меня так, возможно у вас не будет сообщений об ошибке.
А если каждый сайт на разном ip?
Модифицировать скрипт, чтобы умел работать со списками вида
domain;ip
Что нужно в нем изменить? В пхп не силен.
Огромное спасибо за скрипт!
Здравствуйте, спасибо за скрипт, отлично добавляет, запускал xampp.
так же пишет ошибку, но добавляет. единственное, если доменов много, то нужно в php.ini max_execution_time=30 увеличить, иначе через 30 секунд прервется.
Хотелось бы очень этот же скрипт, но для массового удаления доменов.
Заранее спасибо.
Скрипт то что нужно!!! Давно хотел что то подобное, а можно как нибудь прикрутить функцию , чтоб при добавлении, можно было прописать корневую директорию домена?
разобрался, дописал строки -
в шапке
// Корневая директория
$home = “www/нужная_папка”;
команда
$params['home'] = $home;