Criar subdomínio em cPanel usando PHP

Share on facebook
Facebook
Share on google
Google+
Share on twitter
Twitter
Share on linkedin
LinkedIn
Criar subdomínio em cPanel usando PHP

Muitas vezes precisamos de soluções simples que infelizmente as grandes empresas de hopedagem não resolvem para nos vender um produto mais caro…

Pesquisando, encontrei uma forma simples de criar subdomínios no cPanel usando PHP, os créditos de onde encontrei o código estão no fim dessa postagem…

Vamos lá?

Para criar subdomínios em Cpanel usando o script PHP, usaremos a classe XMLAPI hospedada no GitHub.

Começaremos criando o arquivo index.php.
Obs: Não apaguei os comentários que estão em espanhol..

 

<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Crear Subdominios en cPanel usando PHP</title>
  
  <!-- Latest compiled and minified CSS -->
  <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
  
  <!-- Optional theme -->
  <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
  
<style>
  body {
    margin: 80px auto;
    width: 500px;
    text-align: center;
    }
</style>

</head>
<body>
  <h2>Crear Subdominios en cPanel usando PHP</h2>
  <?php if ($errors){ ?>
  <div class="alert alert-danger alert-dismissible" role="alert">
    <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
    <strong>Error!</strong>
    <?php echo $errors;?>
  </div>
  <?php } ?> <?php if ($messages){ ?>
  <div class="alert alert-success alert-dismissible" role="alert">
    <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
    <strong>Bien hecho!</strong>
    <?php echo $messages;?>
  </div>
  <?php } ?>
    <form method='post' class="navbar-form" role="form">
      <div class="input-group">
        <span class="input-group-addon"><i class="glyphicon glyphicon-globe"></i></span>
        <input id="subdominio" type="text" class="form-control" name="subdominio" value="" placeholder="Subdominio" pattern="[a-zA-Z0-9]{2,20}" required title='Sólo se admiten de 2 a 20 caracteres alfa numéricos'>
      </div>
      .<?php echo $_SERVER['SERVER_NAME'];?>
      <button type="submit" class="btn btn-primary" name="crear">Crear</button>
    </form>
  </body>
  </html>

Incluímos o alerta de início para poder ver as mensagens no caso de serem declaradas. A validação também foi feita usando expressões regulares HTML5.
Agora, o código php será criado para criar o subdomínio, para este exemplo, o código foi colocado no início do arquivo index.php

<?php
//Validação do lado do servidor

if(isset($_POST['crear'])){ 
  if (empty($_POST['subdominio'])) {
  
  //Verifique se o campo não está vazio
  $errors = "Digite o subdomínio";
  
  }elseif(strlen($_POST['subdominio']) > 20 || strlen($_POST['subdominio']) < 2) {
    
    //Verifique se o campo contém de 2 a 20 caracteres
    $errors = "O subdomínio não pode ter menos de 2 ou mais de 20 caracteres";
  
  }elseif(!preg_match('/^[a-zd]{2,20}$/i', $_POST['subdominio'])) {
    
    //Verifique se ele contém apenas caracteres alfanuméricos de 2 a 20 caracteres
    $errors = "Subdomínio não permitido: somente 2 a 20 caracteres alfanuméricos são permitidos";

    }elseif(!empty($_POST['subdominio'])){
      //Se não estiver vazio, então
      $subdominio=strtolower($_POST['subdominio']); //Converter para minúsculas 
      
      $domain='ejemplo.com'; //nome do seu domínio
      
      /*------------------------ Subdomínio Criar ---------------*/
      
      require("xmlapi.php"); //Chame a classe xmlapi 
      
      $cpanelusr  = ''; //nome de usuário cPanel
      $cpanelpass = ''; //Senha do usuário do CPanel

      $xmlapi     = new xmlapi('127.0.0.1'); //Nós instanciamos a classe xmlapi passando como parâmetro 127.0.0.1
      
      $xmlapi->set_port( 2082 ); //A porta CPanel pode ser 2082 ou 2083
      
      $xmlapi->password_auth($cpanelusr,$cpanelpass); //Autenticação no cPanel
      
      $xmlapi->set_debug(1); //Saída de erro 1 = verdadeiro
      
      $json=$xmlapi->set_output('json'); //Converter mensagens api em formato json
      
      $result = $xmlapi->api1_query($cpanelusr, 'SubDomain', 'addsubdomain', array($subdominio,$domain,0,0, '/public_html/'.$subdominio));

      //Nós criamos o subdomínio
      $array = json_decode($result);

      //Converter dados json enviados pela API em uma matriz
      $errors_api= $array->{'error'};

      //Extraia a mensagem de erro
      if ($errors_api==null) {
        if ($result){
          $messages = "O domínio <strong>$subdominio.$domain</strong> foi criado com sucesso.";
        }else{
          $errors = "Não foi possível criar subdomínio.";
        }
      }else{
        $errors = $errors_api;
      } /*------------------------ end SubDomain Criar ---------------*/ 
    }else { $errors='Erro desconhecido';
  }
}

O que o código faz é o seguinte:

  • Valide os dados passados ​​através da entrada “subdomínio” no lado do servidor.
  • Ligue para a classe xmlapi.
  • Classe instantânea xmlapi.
  • Autenticação do usuário em nosso cPanel.
  • Se o script passou todas as validações, o subdomínio é criado.

Bem, isso seria tudo para criar um subdomínio em nosso cPanel, a partir de um formulário codificado com PHP.

Aviso Importante! Este script foi desenvolvido para fins educacionais, portanto, é sua responsabilidade implementar as medidas de segurança necessárias, caso você queira usá-lo em ambientes de produção.
Fonte: https://obedalvarado.pw

1 comentário em “Criar subdomínio em cPanel usando PHP”

Deixe uma resposta

Comunidade
  • ARNALDO LIMA