sexta-feira, 4 de setembro de 2015

Configurando Virtual Hosts no Servidor Web Apache


Como configurar Virtual Hosts em ambiente CentOS/RHEL 7 e Debian Server 7 Wheezy/8 Jessie


Um servidor apache é  a forma mais popular e prática de criar um servidor para a internet. Ele divide suas componentes, vulgo, hosts, de forma separada ou não. A forma de separar esses hosts para responder de forma individual como sites mesmo estando dentro do mesmo servidor é por meio dos VirtualHosts.

Cadastrar os Virtualhosts abre a possibilidade de hospedar vários sites em um só servidor. Isso facilita tanto o desenvolvimento quanto a manutenção dos mesmos. Vou realizar os exemplos em um ambiente CentOS 7/RHEL 7, mas ele pode ser abordado da mesma forma em outros servidores como Debian, a diferença é que o pacote é nomeado como Apache2, e no CentOS/Red Hat é utilizado o httpd.

1. Vamos criar os diretórios para armazenar os Virtual Hosts


# mkdir -p /var/www/html/teste.local/public_html
# mkdir -p /var/www/html/teste2.local/public_html

# mkdir /var/www/html/teste.local/logs
# mkdir /var/www/html/teste2.local/logs


2. Setando as permissões aos diretórios 


# groupadd apache
# useradd -d /var/www/ -g apache -s /bin/nologin apache

# chown apache:apache /var/www/html/teste.local/public_html -R
# chown apache:apache /var/www/html/teste2.local/public_html -R

# chmod  755 /var/www/html/ -R


3. Criando um template de teste para os Virtual hosts




# vim /var/www/html/teste.local/public_html/index.html

Cole o template:

<html>
<head>
         <title>Teste</title>
</head>
<body>
          <h1>Virtualhost 01 Ok!</h1>
</body>
</html>

Repita o mesmo exemplo para o segundo:



# vim /var/www/html/teste2.local/public_html/index.html

E cole o template novamente:

<html>
<head>
         <title>Teste2</title>
</head>
<body>
          <h1>Virtualhost 02 Ok!</h1>
</body>
</html>

4. Criando os arquivos de configuração 


No caso do CentOS, as pastas sites-available e sites-enabled não existem, então antes de mais nada deveremos criá-las. Se você estiver utilizando um servidor Debian elas já são criadas logo na instalação do apache

# mkdir /etc/httpd/sites-available
# mkdir /etc/httpd/sites-enabled

Agora vamos entrar no diretório sites-available

# cd /etc/httpd/sites-available
# vim teste.local.conf

E cole o conteúdo alterando conforme suas necessidades:


<VirtualHost *:80>
        ServerAdmin webmaster@teste.local
        ServerName teste.local
        ServerAlias www.teste.local
        DocumentRoot /var/www/html/teste.local/public_html
        ErrorLog  /var/www/html/teste.local/logs/error.log
        CustomLog  /var/www/html/teste.local/logs/access.log combined
</VirtualHost>

Repita o mesmo para o segundo host



<VirtualHost *:80>
        ServerAdmin webmaster@teste.local        ServerName teste.local        ServerAlias www.teste2.local        DocumentRoot /var/www/html/teste2.local/public_html        ErrorLog  /var/www/html/teste2.local/logs/error.log        CustomLog  /var/www/html/teste.local/logs/access.log combined</VirtualHost>


5. Habilitando os Virtualhosts



Edite o arquivo /etc/httpd/conf/httpd.conf

E no final do arquivo cole a linha:

IncludeOptional sites-enabled/*.conf


6. Criar os links simbólicos da pasta sites-available para o diretório sites-enabled


# ln -s /etc/httpd/sites-available/teste.local.conf /etc/httpd/sites-enabled/teste.local.conf
# ln -s /etc/httpd/sites-available/teste2.local.conf /etc/httpd/sites-enabled/teste2.local.conf

7. Edite o arquivo hosts do servidor




# vim /etc/hosts

e edicione as linhas com padrão

IP-DO-SERVIDOR   NOME-DO-HOST

127.0.0.1       teste.local
127.0.0.1       teste2.local

Agora vamos reiniciar o apache para que ele pegue as novas configurações

# setsebool -P httpd_unified 1
# service httpd restart

8. Agora vamos testar

Acesse : http://teste.local e http://teste2.local




:)

SOBRE O AUTOR

Matheus Fidelis

http://msfidelis.github.io/

Power Ranger, Piloto de Helicópteros e Astronauta da NASA. Desenvolvedor Web PHP com foco em Backend e POO, Linux SysAdmin DevOps e Entusiasta Python. Criou esse site pra contribuir com a comunidade com coisas que aprende dentro de um setor maluco de TI :)

Postar um comentário

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com