segunda-feira, 23 de novembro de 2009

Instalando e Configurando um Servidor Web com Apache


Seguindo a Série de Artigos para serem utilizados em sala de aula, desta vez apresentaremos o servidor Web mais utilizado no mundo inteiro: O Apache.
O Servidor Web Apache é robusto e seguro e de longe é um dos projetos mais ativos e promissores do mundo do Software Livre.
O projeto tem sua página oficial em http://www.apache.org/
Além disso o projeto Apache abriga diversos outros projetos de sucesso como o Tomcat e o SpamAssassin.

Arquivo de Configuração:
/etc/apache2/apache2.conf

Daemon:
/etc/init.d/apache2

Porta Tcp: 80

1 - Instalando o Apache
# apt-get install apache2

Depois disso, pode ir a algum browser do tipo (Firefox ou Internet Explorer) e digitar:
http://ip.do.servidor

Exemplo:
http://192.168.0.1

Porém esta é uma configuração muito básica. Neste teste irá apenas aparecer uma página com os dizeres... "It works!" dizendo que o servidor está no ar.

O diretório padrão do apache é o /var/www e se lá você criar um subdiretório chamado teste e colocar uma arquivo index.html com a palavra teste dentro poderá chamá-lo da seguinte maneira:
http://192.168.0.1/teste

Disponibilizando arquivos para Download
As configurações padrões do apache, já fazem com que ele se comporte como um "FTP" via web. Se você apenas criar um link de um diretório na pasta base dele, já aparece como arquivos para download. Vejamos:

# cd /var/www
ln -s /etc/ arquivos (criei um link chamado arquivos que aponta para o diretório /etc)

Vá no browser e digite: http://192.168.0.1/arquivos

Veja o resultado:










Veja que todos os arquivos do diretório /etc/ estão lá disponíveis para download.
Como foi feito isso apenas criando um Link, você também pode criar um diretório tipo /var/www/mp3 e disponibilzar músicas para download.










Se forem criadas várias pastas, elas poderão ser acessadas desta forma. Mas há uma maneira de fazer com que estas pastas sejam acessadas diretamente com números de IP, ou ainda utilizando o nome de Domínio como www.dailson.com.br.
Imagine a seguinte situação:

www.site1.com.br = 192.168.0.2

www.joao.com.br = 192.168.0.3


Essa é a maneira que os provedores trabalham. Cada domínio em um IP. Cada IP em um diretório e assim fazemo com que apenas uma máquina responda por vários domínios.
Para isso temos que aprender a trabalhar com Virtual Hosts (Hospedeiros Virtuais).

Antes disso, precisamos fazer com que nossa máquina responda por vários IPs. Para isso, basta criarmos IPs virtuais.

Configurando Ips Virtuais:
Se você deseja que seu servidor responda por vários Ips, é necessária a criação de interfaces virutais. Isso pode ser feito diretamente com o comando ifconfig ou dentro do arquivo /etc/network/interfaces:
Usando o comando ifconfig
Basta colocar a interface seguida de dois pontos e o número da interface vitual. Iniciando em zero.
Exemplos:

Cria a interface virutal eth0:0
# ifconfig eth0:0 192.168.0.2 netmask 255.0.0.0 up

Cria a interface virutal eth0:1
# ifconfig eth0:1 192.168.0.3 netmask 255.0.0.0 up

Cria a interface virutal eth0:2
# ifconfig eth0:2 192.1681.0.4 netmask 255.0.0.0 up

Se você quiser mais detalhes de como proceder de forma correta com configuração de redes no Linux (Debian e Derivados) acesse este tutorial:

http://www.dailson.com.br/2009/05/configuracao-de-rede-no-debian-gnulinux.html

Criando Virtual Hosts

A Técnica de Virtual Hosts faz com que o apache redirecione o IP diretamente para uma Pasta.
Para criar IPs virtuais:

1 - Abra o arquivo /etc/apache2/httpd.conf
# vi /etc/apache2/httpd.conf

Crie a seguinte configuração:
1 - Crie os IPs virtuais

Neste nosso exemplo vou criar os IPs virtuais: 192.168.0.1 e 192.168.0.2
# ifconfig eth0:0 192.168.0.2 netmask 255.0.0.0 up
# ifconfig eth0:1 192.168.0.3 netmask 255.0.0.0 up

2 - Crie os subdiretórios abaixo de /var/www cada um para seu site.
Criar os diretório /var/www/site1 e /var/www/site2

# mkdir /var/www/site1
# mkdir /var/www/site2


Obs: Não esqueça de colocar dentro destes diretórios o arquivo index.html com algum conteúdo.
Sugestão:
No index.html do site1 escreva SITE1
No index.html do site2 escreva SITE2

3 - Criar a configuração no apache
# vi /etc/apache2/sites-enabled/000-default

Lá já tem uma estrutura de VirtualHost, vamos criar a nossa. Vá ao final do arquivo e escreva as seguintes linhas:
<VirtualHost 192.168.0.2>
DocumentRoot /var/www/site1
ServerName 192.168.0.2

</VirtualHost>

<VirtualHost 192.168.0.3>
DocumentRoot /var/www/site2
ServerName 192.168.0.3

</VirtualHost>

Pronto!!

Reinicie o apache:
# /etc/init.d/apache2 restart

E teste no Browser com o comando:
http://192.168.0.1
http://192.168.0.2

2 comentários:

  1. EU SEI QUE É CHATO, MAS GALERA EU TO GANHANDO DINDIN ME COMPREENDAM ESTES ANÚNCIOS SÃO PUBLICITÁRIO, AQUI VOCÊ GANHA DE 40,00 A 200,00 REAIS POR SEMANA, APENAS PARA COMPARTILHAR ANÚNCIOS NO FACEBOOK. CORRE PRA CÁ E VEM SER FELIZ.
    SAIBA MAIS--> http://www.multiclicksbrasil.com/

    ResponderExcluir
  2. Boa noite amigo, eu tenho uma seria duvida e gostaria de saber se tu pode me ajudar.
    Para eu botar dois sites dentro do apache tenho que configurar o VitrtualHost, até ai tudo certo, mas na hora de registrar os domínios para deixar acessível na web oque devo botar?
    O IP aqui em casa é fixo, mas é um só e eu quero dois sites no mesmo servidor como se diferencia um site para o outro?

    ResponderExcluir