Arquivo do blog

sexta-feira, 5 de agosto de 2011

Virtual Hosts - Apache

Virtual Hosts

O Virtual Host permite hospedar diversos sites, com domínios ou subdomínios diferentes num único servidor web e com um único endereço IP.
Vamos criar dois sites com os seguintes domínios:
  • website1.com.br
  • website2.com.br
Crie um diretório para cada site no diretório raiz do servidor Web:
Debian/Ubuntu
root@cesar.augustus.nom.br's
# mkdir /var/www/website1 # mkdir /var/www/website2
Fedora/CentOS
root@cesar.augustus.nom.br's
# mkdir /var/www/html/website1 # mkdir /var/www/html/website2
Slackware
root@cesar.augustus.nom.br's
# mkdir /srv/httpd/htdocs/website1 # mkdir /srv/httpd/htdocs/website2
Em cada diretório, crie dois subdiretórios com os seguintes nomes:
  • public_html: é onde será armazenado as páginas do site que serão acessados.
  • logs: é onde será armazenado os arquivos de Log de acesso.
Debian/Ubuntu
root@cesar.augustus.nom.br's
# mkdir /var/www/website1/public_html # mkdir /var/www/website2/public_html # mkdir /var/www/website1/logs # mkdir /var/www/website2/logs
Fedora/CentOS
root@cesar.augustus.nom.br's
# mkdir /var/www/html/website1/public_html # mkdir /var/www/html/website2/public_html # mkdir /var/www/html/website1/logs # mkdir /var/www/html/website2/logs
Slackware
root@cesar.augustus.nom.br's
# mkdir /srv/httpd/htdocs/website1/public_html # mkdir /srv/httpd/htdocs/website2/public_html # mkdir /srv/httpd/htdocs/website1/logs # mkdir /srv/httpd/htdocs/website2/logs
Agora vai configurar no Apache para adicionar os dois sites.
Debian/Ubuntu
Crie um arquivo para cada site no diretório "sites-available":
root@cesar.augustus.nom.br's
# touch /etc/apache2/sites-available/website1 # touch /etc/apache2/sites-available/website2
Adicione no arquivo "website1" as seguintes linhas abaixo:
<VirtualHost *:80>
    ServerAdmin webmaster@website1.com.br
    DocumentRoot /var/www/website1/public_html
    ServerName website1.com.br
    ErrorLog /var/www/website1/logs/error.log
    CustomLog /var/www/website1/logs/access.log combined
</VirtualHost>
E adicione no arquivo "website2" as seguintes linhas abaixo:
<VirtualHost *:80>
    ServerAdmin webmaster@website2.com.br
    DocumentRoot /var/www/website2/public_html
    ServerName website2.com.br
    ErrorLog /var/www/website2/logs/error.log
    CustomLog /var/www/website2/logs/access.log combined
</VirtualHost>
Depois ative ambos os sites e recarregue as configurações no servidor:
root@cesar.augustus.nom.br's
# a2ensite website1 # a2ensite website2 # /etc/init.d/apache2 reload
Fedora/CentOS
Edite o arquivo "/etc/httpd/conf/httpd.conf", descomentando a seguinte linha abaixo:
NameVirtualHost *:80
E adicione no final do arquivo as seguintes linhas:
<VirtualHost *:80>
    ServerAdmin webmaster@website1.com.br
    DocumentRoot /var/www/html/website1/public_html
    ServerName website1.com.br
    ErrorLog /var/www/html/website1/logs/error.log
    CustomLog /var/www/html/website1/logs/access.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@website2.com.br
    DocumentRoot /var/www/html/website2/public_html
    ServerName website2.com.br
    ErrorLog /var/www/html/website2/logs/error.log
    CustomLog /var/www/html/website2/logs/access.log combined
</VirtualHost>
Depois de configurar, recarregue as configurações no servidor:
root@cesar.augustus.nom.br's
# service httpd reload
Slackware
Edite o arquivo "/etc/httpd/httpd.conf", descomentando a seguinte linha abaixo:
Include /etc/httpd/extra/httpd-vhosts.conf
Salve o arquivo, abre o arquivo "/etc/httpd/extra/httpd-vhosts.conf" e adicione as seguintes linhas:
<VirtualHost *:80>
    ServerAdmin webmaster@website1.com.br
    DocumentRoot /srv/httpd/htdocs/website1/public_html
    ServerName website1.com.br
    ErrorLog /srv/httpd/htdocs/website1/logs/error.log
    CustomLog /srv/httpd/htdocs/website1/logs/access.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@website2.com.br
    DocumentRoot /srv/httpd/htdocs/website2/public_html
    ServerName website2.com.br
    ErrorLog /srv/httpd/htdocs/website2/logs/error.log
    CustomLog /srv/httpd/htdocs/website2/logs/access.log combined
</VirtualHost>
Depois de configurar, reinicie o servidor Apache:
root@cesar.augustus.nom.br's
# apachectl restart

Acessando os Sites

Crie uma página de teste para cada site, e salve com o nome "index.html" no subdiretório "public_html" de cada site.
Para poder acessar o site com o domínio, adicione no arquivo "/etc/hosts" o IP do servidor e o domínio:
127.0.0.1 website1.com.br
127.0.0.1 website2.com.br
Acesse os endereços "http://website1.com.br/" e "http://website2.com.br/", será exibido a página de teste que foi criada.
Pronto.
Licença Creative Commons

Nenhum comentário:

Postar um comentário