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>
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