segunda-feira, 17 de maio de 2010

Instalando o Apache2 e configurando domínios virtuais num Linux Debian Based

Instalar o Apache2 via apt-get ou aptitude:
apt-get install apache2 ou
aptitude install apache2
O apache2 depende dos pacotes apache2-mpm-worker, apache2.2-common, porém o apt-get ou o aptitude irá resolver as dependências.

Após a instalação o apache já está instalado e funcionando na porta padrão do protocolo HTTP (Porta 80). Caso seja necessário modificar a porta do apache2 será necessário editar o arquivo /etc/apache2/ports.conf e modificar os parâmetros abaixo para o novo valor :
NameVirtualHost *:80
Listen 80
O apache2 já está pronto para configuração de novos domínios virtuais, para isso será necessário criar o arquivo que servirá como modelo para os próximos domínios virtuais como segue abaixo:

Arquivo: /etc/apache2/sites-available/dominio.com.br

<VirtualHost *:80>
ServerName www.dominio.com.br
ServerAdmin network@dominio.com.br
DocumentRoot /webhost/dominio.com.br
ErrorLog /var/log/apache2/dominio.com.br-error.log
CustomLog /var/log/apache2/dominio.com.br-access.log combined
<
/VirtualHost>


Este arquivo contém a configuração mínima para um domínio virtual para habilitarmos a configuração do mesmo basta executar os comandos abaixo:

Habilita o site dominio.com.br:
a2ensite dominio.com.br
Carrega as configurações feitas para a memória do apache2:
/etc/init.d/apache2 reload

Abaixo veremos uma configuração de domínio virtual mais avançada, onde criamos uma regra de autorização para uma determinada faixa de rede e criamos a autenticação numa determinada pasta do site:

<VirtualHost *:80>
ServerName www.dominio.com.br
ServerAdmin network@dominio.com.br
DocumentRoot /webhost/dominio.com.br
ErrorLog /var/log/apache2/dominio.com.br-error.log
CustomLog /var/log/apache2/dominio.com.br-access.log combined

# Configuração de autorização junto com autenticação do diretório
<Directory /webhost/dominio.com.br/intranet>
# Não permite listagem do diretório em caso de não haver uma página válida
Options -Indexes
# Opção que habilita a autenticação do diretório
AllowOverride AuthConfig
Order allow,deny
# Permite acesso apenas com origem da rede 10.1.0.0/16
allow from 10.1.0.0/16
deny from all
<
/Directory>
<
/VirtualHost>


Para que a configuração de autenticação funcione na pasta especificada é necessário criar o arquivo /webhost/dominio.com.br/intranet/.htaccess com as configurações abaixo:
AuthName "Intranet"
AuthType Basic
AuthUserFile /etc/apache2/htusers
AuthGroupFile /etc/apache2/htgroups
require valid-user
Esse arquivo irá permitir a autenticação de usuários criados pelo programa htpasswd e adicionados no arquivo htusers especificado. Veremos como criar e adicionar o arquivo htusers:

Criar o arquivo /etc/apache2/htusers adicionando um novo usuário:
htpasswd -c /etc/apache2/htusers usuario1
Adicionar um novo usuário no arquivo /etc/apache2/htusers:
htpasswd /etc/apache2/htusers usuario2
Pronto! Seu apache já está configurado com domínios virtuais e com a configuração de autorização e autenticação de usuários para um determinado diretório.