Автоматическое создание поддоменов в Cpanel и ISPManager из PHP скрипта
При разработке очередного проекта возникла необходимость в автоматическом создании поддоменов в Cpanel и ISPManager из PHP скрипта. Как оказалось, это решается довольно таки просто. Итак, от слов к делу.
Функция для автоматического создания поддоменов в Cpanel
function subdcpanel($domain, $sub, $login, $pass){ $request = "http://".$domain.":2082/frontend/x3/subdomain/doadddomain.html?rootdomain=".$domain."&domain=".$sub; $ch = curl_init (); // инициализация curl_setopt($ch, CURLOPT_URL , $request); // адрес страницы curl_setopt($ch, CURLOPT_REFERER, $request); curl_setopt($ch, CURLOPT_USERAGENT , "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7"); // каким браузером будем прикидываться curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookies.txt'); //куда будем сохранять куки curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'/cookies.txt'); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //TIMEOUT curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //Переходим по редиректам curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); //Метод авторизации curl_setopt($ch, CURLOPT_USERPWD, $login.':'.$pass); //Параметры авторизации curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); // нам нужно вывести загруженную страницу в переменную $content = curl_exec($ch); // скачиваем страницу $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); // закрываем соединение return $http_code==200; }
Данная функция авторизуется в Cpanel, использую логин и пароль, после чего отправляет запрос на добавление нового поддомена. Использовать эту функцию можно так:
if(subdcpanel('maindomain.com', 'subdomain', 'login', 'pass')){ echo 'Поддомен успешно создан'; } else{ echo 'Произошла ошибка'; }
Как видите все очень просто!
Функция для автоматического создания поддоменов в ISPManager
В ISPManager все намного проще, т.к. при создании www домена можно выбрать опцию «Авто поддомены» и для создания домена, достаточно будет создать поддиректорию внутри www домена. Ниже приведена функция для создания www доменов.
function subdisp($domain, $sub, $login, $pass){ $domain_name = (!empty($sub)? $sub.".": "").$domain; $request="https://".$domain."/manager/ispmgr?authinfo=".$login.":".$pass."&out=text&func=wwwdomain.edit&sok=yes&domain=".$domain_name."&alias=www.".$domain_name."&docroot=www/".$domain_name."&owner=".$domain_name."&ip=&admin=webmaster@".$domain."&charset=utf-8&index=index.php&php=&autosubdomain=asdnone"; $ch = curl_init (); // инициализация curl_setopt ($ch , CURLOPT_URL , $request); // адрес страницы для скачивания curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //TIMEOUT curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //Переходим по редиректам curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 ); // нам нужно вывести загруженную страницу в переменную $result = curl_exec($ch); // скачиваем страницу curl_close($ch); // закрываем соединение $result = strtolower(trim($result)); return $result == 'ok'; }
Надеюсь кому-то пригодятся эти функции. Удачи!
-
Комментарии (4)
- Сайт