O cPanel é uma ferramenta que domina o mundo do hosting, porém é necessário adquirir uma licença para usa-lo, mas existem alternativas opensource totalmente gratuitas para quem está iniciando nessa área e o orçamento é pouco para investir. Uma delas que eu testei e uso é o VestaCP, é um painel gerenciador de hosting escrito totalmente em PHP. Nele é possível criar planos de hospedagem, limitar recursos, como espaço em disco, contas de email, domínios, subdomnios e até mesmo entradas na zona de DNS. Toda a documentação e instalação pode ser encontrada no site oficial: https://vestacp.com Mas vou fazer um breve resumo abaixo e explicar um pouco das funcionalidades. Para fazer a instalação, deve-se baixar o script com o seguinte comando:
curl -O http://vestacp.com/pub/vst-install.sh
e depois executa-lo:
bash vst-install.sh
Todas as opções podem ser selecionadas as defaults, e no final será informado o login e a senha de admin para acessar o painel. O endereço de acesso será assim: htps://seu_dominio.com.br:8083 A tela que ira aparecer será essa:
Após o login, essa será a tela que você irá ver.
Nos menus acima são realizadas as configurações do servidor que vou mostrar mas a frente e abaixo é a lista dos seus clientes já cadastrados. A primeira parte que vamos ver é a de criação de planos de hospedagem, para isso vá no canto superior esquerdo e clique em packages. Aparecerá a seguinte tela:
O plano default, vem como exemplo no VestaCP, mas você pode criar os seus customizados usando este como modelo. Então vamos explorar as propriedades deles. Do lado direito clique em edit e será aberta a seguinte tela:
Nessa tela existem as seguintes opções:
Package Name
esse é o nome do seu plano de hospedagem.
Web Template
esse é o vhost do apache que será usado como base, normalmente deixa-se a opção default.
Proxy Template
Essa opção define que o Nginx será utilizado como proxy para carregar os arquivos estáticos, como imagens, javascript e css, pode-se deixar a opção default também.
DNS Template
nessa opção você decide se o seu servidor de dns será na própria máquina ou em um servidor externo, se você deixar como default, estará definido o servidor de dns na própra máquina.
SSH Access
Nessa opção é definido qual é a shell de acesso do usuário por ssh, particularmente eu defino como bash, pois existem usuários mais avançados que precisam desse acesso para usar o git dentro da hospedagem por exemplo, no entanto muitas empresas de hosting deixam bloqueado esse acesso, caso você também queira deixar bloqueado é só definir essa opção como nologin.
Web Domains
Nessa opção é definido o limite máximo de domínios que um cliente pode criar nesse plano.
Web Aliases
Nessa opção você define a quantidade de aliases que o cliente pode criar, por exemplo: o domínio principal é alissonmachado.com.br e eu quero que o domínio alissonmachado.com também aponte para o mesmo site, nesse caso eu posso definir o segundo domínio como um alias para o primeiro.
DNS Domans
Nessa opção você define quantas zonas de DNS poderão ser criadas nesse pacotes, é coerente deixar esse número igual a quantidade de domínios, pois cada domínio precisará de uma zona de dns.
DNS Records
nessa opção é possível definir quantas entradas de dns poderão ser criadas por domínios. Por exemplo: para o domínio alissonmachado.com.br, posso criar as entradas mail, ns1,ns2, blog, teste,www, criando assim os seguintes endereços: mail.alissonmachado.com.br, ns1.alissonmachado.com.br e assim por diante, essa opção não é muito interessante definir um limite.
Mail Domains
Nessa opção são definidos quantos domínios poderão ter contas de email, é interessante também deixar a mesma quantidade que a quantidade de domínios.
Mail Accounts
Nessa opção serão definidas quantas caixas de email poderão ser criadas por domínio, essa opção é diretamente ligada a opção acima, então se você definir que o limite de domínios é 10 e contas por domínio é 10 também, o cliente poderá criar até 100 caixas de email, sendo 10 por domínio.
Databases
Nessa opção você define a quantidade de bancos de dados que o seu cliente pode ter, é interessante configurar esse limite igual a quantidade de domínios que o cliente pode ter, sendo assim o seu cliente pode ter 1 banco por domínio.
Cron jobs
Nessa opção pode-se definir a quantidade de tarefas agendadas por cliente, isso é de critério pessoal do administrador definir, pois existem cliente que podem configurar tarefas que executem a cada 1 minuto comprometendo a performance do servidor.
Backups
Nessa opção pode ser definir a quantidade de backups que o seu cliente pode gerar, é interessante deixar no máximo um limite de 7, pois é cliente pode deixar gerar backups de até 7 dias atrás.
Quota
Nessa opção é definido a quantidade de espaço que o cliente pode usar no servidor, o espaço é definido em megabytes, sendo assim o valor 10000 Mb é equivalente a mais ou menso 10 Gbs.
Nameservers
Nessa opção são definidos os DNS default para o cliente, por exemplo, se o meu domínio é alissonmachado.com.br eu posso criar 2 DNS validos como ns1.alissonmachado.com.br e ns2.alissonmachado.com.br e definir que todos os clientes utilizarão esse nameserver como padrão. Essas são todas as opções possíveis para criar ou editar um plano de hospedagem. Para criar um novo é só clicar em
Packages
novamente e no circulo verde com um sinal de +, será aberta a mesma página porém com todos os campos para edição.v Uma vez criado o plano de hospedagem, você pode cadastrar um cliente, feito isso clique no ícone do VestaCP que está no canto superior direto, e você voltará para a tela inicial, onde são gerenciados os cientes, para adicionar um novo clique no circulo verde com um sinal de + e será aberta a seguinte tela:
Nela você poderá cadastrar seus clientes. Essa tela possui os seguintes campos:
Username
Esse campo define o login do cliente. Esse campo não possui um limite, porém é recomendável definir os logins dos clientes com no máximo 5 caracteres, pois esse nome será o prefixo para a criação de uma base de dados, que será composta por: logindocliente_nomedabase, e um usuário no mysql não pode ter mais do que 11 caracteres em seu login, sendo assim quanto maior for o login do usuário menor será o nome da base de dados e do usuário no mysql que ele for criar.
Password
é a senha do cliente, esse campo pode ser definido manualmente, mas é interessante que seja gerado automaticamente clicando no botão
generate
.
Nesse campo deve ser definido o email que o cliente receberá os dados de acesso.
Package
Nessa opção você define o plano de hospedagem que o seu cliente irá utilizar, conforme criado previamente.
Language
Nessa opção é definido o idioma padrão que o painel do seu cliente estará acessível.
First Name
Primeiro nome do cliente.
Last Name
Sobrenome do eu cliente.
Send login credentials to email
email que receberá o login e a senha do cliente cadastrado, deve ser definido o mesmo da oção email acima. Preenchidos todos os campos é só clicar em ADD e o seu cliente já poderá acessar o painel e hospedar os domínios dele. Se o seu cliente quiser utilizar certificados SSL para garantir a segurança das páginas através do protocolo HTTPS, é necessário fazer a contratação de um IP Dedicado para esse domínio e adicioná-lo ao VestaCP, para fazer isso no topo da tela ao lado de
Packages
,
existe a opção
IP
, que ao clicar nela aparecerá a seguinte tela:
Nela são listados todos os endereços de IP vinculados a essa máquina, a mascara de rede e a interface do qual eles foram vinculados. Para adicionar um novo endereço de IP deve-se clicar no círculo verde com um sinal de +, que irá aparecer a seguinte tela.
Nessa tela 4 opções são de configuração obrigatória.
IP Address
nesse campo deve ser preenchido o endereço de IP que você quer adicionar.
Netmask
a mascara de rede do endereço fornecido pelo seu provedor de serviço.
Interface
deve ser selecionada a interface de rede do qual o endereço de IP será vinculado, caso só exista 1 interface, como acontece em muitos servidores cloud, pode ser associada a ela mesmo e automaticamente o VestaCP cria uma interface virtual vinculando esse endereço de IP.
Shared
Essa opção é muito importante, se marcada, qualquer cliente do seu servidor pode usar esse endereço de IP, ele será compartilhado para que qualquer domínio consiga usar, caso seja um endereço de IP dedicado, como é o caso de certificados SSL essa opção deve ser desmarcada, assim você poderá designar esse endereço de IP para um domínio em específico. Feito isso é necessário clicar no botão
ADD
para fazer a persistência das informações. O restante das opções são em sua maioria para consulta, como por exemplo a opção
Graphs
no topo da tela ao lado de
IP
. Ao clicar nessa opção aparecerá a seguinte tela:
Nela são mostrados alguns gráficos com média de consumo do servidor, uso de memória e dos demais serviços. Na opção
Statistics
ao lado de
Graphs
, ao clicar nela será aberta a seguinte página:
Nela é possível verificar o consumo do seu servidor naquele determinado mês, como por exemplo consumo de disco e de banda. Na opção
Logs
ao clicar, é aberta a seguinte página:
Nela é possível ver o log das últimas alterações no servidor, como por exemplo: troca de senhas, criação de novos usuários, criação de planos de hospedagem, migração de clientes entre planos e demais informações. Ao clicar em
Updates
você será redirecionado para a seguinte página:
Nela é possível ver atualizações do VestaCP, por padrão elas são realizadas automaticamente, então não é necessário mexer nas configurações dessa página. Na sequência existe a opção
Firewall
, nela pode ser configurado o firewall local da máquina, no entanto isso não descarta a necessidade de solicitar ao seu provedor de serviço a liberação de uma porta caso seja necessário o acesso externo. Abaixo uma imagem da tela de
Firewall
.
Existe também a opção
Server
, ao clicar nessa opção será carregada a seguinte página:
Nela é possível mudar o hostname da máquina caso necessário, fazer o restart dos serviços para efetivar alguma configuração que seja necessária e também verificar o Uptime da máquina.
Caso você precise acessa a hospedagem do seu cliente para dar suporte, é possível acessa-la sem a necessidade da senha do cliente. Volte para a página inicial do painel clicando no icone do VestaCP vá até a linha onde aparece o cliente cadastrado e no canto direito existe a opção login as.
Nela será aberta a seguinte página:
Na mesma tela, pode se ver o os dados de acesso ao SSH por exemplo. É possível também ver o email de acesso o plano e o status geral da hospedagem. O acesso ao FTP é feito utilizando o próprio domínio cadastrado, como por exemplo: alissonmachado.com.br o login que foi cadastrado o cliente e a senha do próprio cliente. A imagem abaixo representa uma conexão utilizando o filezilla.
Nessa tela é possível ver os diretórios locais no lado esquerdo da tela e no lado direito os diretórios remotos. Clicando dentro da pasta
Web é possível listar todos os domínios que o cliente possui, conforme a imagem abaixo:
Entrando na pasta do domínio, serão exibidas as pastas
Default
de qualquer contra criada. A mais importante é a pasta
public_html
, pois é nela em que são colocados os arquivos do site.
Mas voltando a página inicial do cliente, no botão que é um circulo verde com o sinal de + logo acima, pode-se adicionar um novo domínio. clicando nele será aberta a seguinte página:
Domain
Nesse campo é preenchido o domínio que será cadastrado.
IP Address
Nesse campo é escolhido o endereço de IP que responderá por esse domínio, esse endereço é o que ficará na entrada @ A na zona de DNS do domínio cadastrado. A zona de DNS será explicada mais a frente.
DNS Support
Essa opção marcada cria uma zona de dns para o domínio cadastrado, ela não é obrigatória quando o seu DNS é externo, por exemplo quando você gerencia a sua zona de dns pelo registro.br.
Mail Support
Essa opção marcada permite que o domínio possua caixas de email. Uma vez com todas as opção preenchidas é só clicar em ADD e o novo domínio já estará cadastrado. Para ver a zona de DNS desse domínio, é só clicar na opção DNS no topo da página e nela será aberta a seguinte página:
Para ver todas as entradas de DNS criadas para uma zona de DNS, é só ir na linha em que está o domínio e depois clicar em
List Records
. E será aberta a seguinte página:
Nela são listadas todas as entradas de DNS da zona selecionada, caso você queria adicionar uma nova entrada, é só clicar no círculo verde com um sina de +. A seguinte página irá carregar:
Para cadastrar uma nova entrada, são necessárias basicamente 3 informações.
Record
Esse campo define a entrada que você vai criar. Pode ser mail, www, teste, painel, ou qualquer outra coisa que seja necessário.
Type
Nessa opção é definido qual o tipo da entrada que você quer definir. Por exemplo: Tipo A espera como valor um endereço de IP, AAAA espera como valor um endereço de IPv6, CNAME espera como valor um domínio ou uma outra entrada da mesma zona de DNS, TXT é normalmente para armazenar um texto, como entradas de SPF.
IP or Value
Nesse campo é necessário informar o valor de acordo com o tipo especificado acima, se for um tipo A recebe um endereço de IP, se for um CNAME espera um domínio ou uma entrada da mesma zona de DNS. Preenchidas as informações é necessário clicar em ADD para salvar a nova entrada de DNS. Clicando na opção
no topo da página você será redirecionado para a seguinte tela.
Nessa página são mostrados todos os domínios que podem ter contas de email, caso você queira ver as contas já cadastradas, é necessário clicar no botão
List Accounts
e será carregada a seguinte página:
Nessa página são listadas todas as contas de email criadas para o domínio selecionado, caso você queira criar uma nova conta de email, é necessário clicar no círculo verde com o sinal de + e será redirecionado para a seguinte página:
Nessa página são necessárias basicamente duas informações.
Account
Nesse campo é necessário informar a caixa de email sem o domínio. Por exemplo: alisson, liliane, hederson ou até mesmo, contato, comercial e assim por diante.
Password
Nesse campo pode ser definida a senha da caixa criada. Uma vez preenchidas essas informações pode-se clicar em
ADD
e a conta de email estará criada. No topo da página existem também a página
DB
, nela podem ser gerenciados todos os bancos de dados do cliente. Clicando nessa opção será carregada a seguinte página:
Nessa tela são listados todos os bancos de dados criados na hospedagem do cliente, caso queira criar um novo banco de dados, é necessário clicar no botão que é um circulo verde com um sinal de + e você será redirecionado para a seguinte página:
Para criar um banco de dados, é necessário preencher as seguintes informações:
Database
Nesse campo é definido o nome do banco de dados, por padrão automaticamente é definido como prefixo o login do usuário no nome do banco de dados, por exemplo, se for criar uma banco chamado wordpress, ele ficará da seguinte forma: alisson_wordpress.
User
Nesse campo é o login do usuário do mysql dono do banco de dados, o usuário também segue o mesmo padrão, no entanto o usuário tem um limite de 11 caracteres, então se o login do usuário for muito extenso, não sobrarão muitos caracteres para o login do banco de dados, por isso é recomendado que o login do usuário seja no máximo 5 caracteres, caso o login do usuário tenha acima de 10 caracteres não será possível criar bancos de dados para essa conta, será necessário remove-la e criar com um login menor.
Password
nesse campo é definida a senha para acesso ao banco de dados, ela pode ser definida manualmente, mas normalmente é gerada por motivos de força da senha.
Type
Nessa opção só é possível criar bancos mysql, caso seja necessário criar um banco de dados postgresql é necessário fazer uma customização do VestaCP.
Host
Nessa opção também é necessário deixar sempre como localhost por motivos de segurança, para que a base possa ser acessada somente de dentro da própria hospedagem, porém é possível fazer customizações a nível de banco de dados.
Charset
Nessa opção é definida a codificação de caracteres do banco de dados, o recomendado é UTF-8 que aceita todos os tipos de acentuação.
Send login credentials to email address
Nesse campo é definido o endereço de email que irá receber os dados de acesso ao banco de dados, por padrão ele é preenchido com o email do cliente dono da hospedagem. Uma vez definidas todas essas informações é necessário clicar no botão
ADD
para criar a nova base dados.