Você está na página 1de 18

Programação para Internet I

1. Servidores web

Nuno Miguel Gil Fonseca


nuno.fonseca@estgoh.ipc.pt
Servidores web
 Quando pretendemos aceder a uma página web,
utilizamos um browser, independentemente da
plataforma de hardware/software, o processo
desenrola-se sempre do mesmo modo…

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 2
Servidores web
 O que importa saber sobre os web servers? (cont)
 Na prática um web server não é mais do que um
servidor de ficheiros, em que é pedido um ficheiro que
será devolvido caso exista.
 Exemplos de web servers
 Apache HTTP Server (http://httpd.apache.org/)
 Lighttpd server (http://www.lighttpd.net/)
 Microsoft IIS (Internet Information Service)
 Nesta disciplina iremos optar pelo Apache HTTP Server.
 Depois de o instalar, basta utilizar um browser para
aceder a http://localhost/ ou
http://127.0.0.1.

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 3
Servidores web
 O que importa saber sobre os web servers? (cont)
 Os web servers podem ser configurados ao nosso gosto
para melhor se adaptarem às nossas reais necessidades
 No caso do Apache, as configurações são feitas num
ficheiro de texto: httpd.conf que se encontra na
directoria:
 C:\Program Files\Apache Software Foundation\Apache2.2\conf
 Importa referir que para as alterações feitas neste
ficheiro terem efeito, é necessário fazer Restart (ou
Stop + Start) do web server.

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 4
Servidores web
 O que importa saber sobre os web servers?
 É possível ter mais do que um web server a “correr”
na mesma máquina, no entanto têm que estar “à
escuta” de portos diferentes.
 Por defeito: 80
 Para outros web servers: 8080 ou outros
 Para alterar o porto basta alterar no ficheiro httpd.conf a seguinte
linha:
Listen 80

 Atenção: Este porto só deverá ser alterado se for efectivamente


necessário!

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 5
Servidores web
 O que importa saber sobre os web servers?
 É necessário definir um root directory no disco rígido
do servidor, que irá corresponder à directoria raíz do
site.
 Por exemplo, se para o site www.abcd.pt definirmos como root
directory “c:\myweb\files\”, quando a estamos a aceder a
www.abcd.pt, na verdade estamos a tentar obter ficheiros que se
encontram na directoria “c:\myweb\files\”.
 Por defeito a root directory do web server Apache é:
 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs
 Para alterar a root directory basta alterar no ficheiro httpd.conf a
seguinte linha:

ServerRoot C:\Program Files\Apache Software Foundation\Apache2.2\htdocs

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 6
Servidores web
 O que importa saber sobre os web servers? (cont)
 Como é sabido, sempre que se acede a uma página
web faz-se o pedido de um ficheiro, no entanto, em
alguns casos é possível omitir o nome desse ficheiro;
 Por exemplo, ao acedermos a www.abcd.pt não estamos a indicar
o nome de nenhum ficheiro, assim sendo, irá ser devolvido, caso
exista, um ficheiro com um default file: index.html,
default.htm, etc.
 O utilizador poderá adicionar outros default files, como por
exemplo index.htm, omeuficheiro.html, etc.
 Para tal, basta procurar no ficheiro httpd.conf a seguinte linha e
adicionar os ficheiros que pretender. Eles serão acedidos pela
ordem indicada
DirectoryIndex index.html index.htm
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 7
Servidores web
 O que importa saber sobre os web servers? (cont)
 Então e se não existir nenhum default file na
directoria a que estamos a aceder?
 Nesse caso, poderá acontecer uma de duas coisas:
 Ser apresentada uma listagem de todos os ficheiros e directorias que se
encontram na directoria indicada. Para tal acontecer, o web server deverá
estar configurado para permitir directory listing.

 Ser apresentada uma mensagem de erro.


(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 8
Servidores web
 O que importa saber sobre os web servers? (cont)
 Então e se não existir nenhum default file na
directoria a que estamos a aceder?
 Nesse caso, poderá acontecer uma de duas coisas:
 Ser apresentada uma mensagem de erro (403 Forbidden).
 Para activar directory listing no Apache, basta fazer:
<Directory "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs">
...
Options Indexes FollowSymLinks
...
</Directory>

 Nota: por defeito, esta opção já vem activada, para a desactivar, basta remover a
palavra Indexes

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 9
Servidores web
 O que importa saber sobre os web servers? (cont)
 Num servidor de “produção” é conveniente que esteja
definido um endereço de email de contacto do
administrador do servidor para poder ser contactado
em caso de erro
 Esse endereço de email pode ser modificado a
qualquer momento, bastando para tal alterar a
seguinte linha no ficheiro httpd.conf.
ServerAdmin ze@xpto.com

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 10
Servidores web
 O que importa saber sobre os web servers? (cont)
 Um web server regista todos os pedidos de ficheiros
efectuados (logs).
 Deste modo, é possível verificar que erros ocorreram,
onde/quando/a quem ocorreram e tentar solucionar o
problema…
 Por defeito, os logs são guardados na directoria
 C:\Program Files\Apache Software Foundation\Apache2.2\logs
 Para alterar o nome\localização do ficheiro de logs de erro,
basta alterar a seguinte linha

ErrorLog "log/error.log"

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 11
Servidores web
 O que importa saber sobre os web servers? (cont)
 Um web server regista todos os pedidos de ficheiros
efectuados (logs).
 Um dos ficheiros de log mais importantes é o
ficheiro de acesso (access.log). Em que é
registada informação sobre todos os acessos ao
servidor.

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 12
Servidores web
 O que importa saber sobre os web servers? (cont)
 Um web server regista todos os pedidos de ficheiros
efectuados (logs).
 Consoante a fase de maturidade do servidor, podemos alterar o
nível de produção de logs que pretendemos:
LogLevel warn

 Outros valores possíveis são: debug, info, notice,


error, crit, alert, emerg.
 Consoante a situação podemos definir diferentes formatos para o
ficheiro de logs de acesso.
LogFormat ...formato... nomedoformato
 Opções para o formato: http://www.loganalyzer.net/log-
analyzer/apache-custom-log.html
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 13
Servidores web
 O que importa saber sobre os web servers? (cont)
 Um web server regista todos os pedidos de ficheiros
efectuados (logs).
 Para indicar o nome/localização do ficheiro de logs de acesso,
assim como o formato a ser utilizado, procedemos da seguinte
maneira

CustomLog "logs/access.log" nomedoformato

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 14
Servidores web
 O que importa saber sobre os web servers? (cont)
 Documentos de erro personalizados
 É possível definir ficheiros (x)HTML personalizados que serão
apresentados em caso de erro

ErrorDocument 404 /erro404.html

 Nota: no próximo capítulo serão apresentados todos os códigos


de erro.

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 15
Servidores web
 O que importa saber sobre os web servers? (cont)
 É possível adicionar módulos a um web server…
 Exemplos: PHP, SSL, etc.
 Para tal, basta adicionar no ficheiro httpd.conf uma linha
semelhante à seguinte
LoadModule nome_do_modulo

 Caso seja um módulo que não faça parte da distribuição


“normal” do Apache, temos que garantir que o ficheiro
correspondente a esse módulo existe
 Para desactivar o uso de um módulo, basta retirar a linha
correspondente, ou em alternativa, comentar (colocar um # no
inicio da linha)

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 16
Servidores web
 Configurações personalizadas para uma directoria
 Até ao momento temos visto essencialmente
configurações gerais para o servidor
 No entanto é possível aplicar determinadas
configurações a directorias em específico
<Directory directoria>
...
configurações
...
</Directory>

<Directory /> <Directory /testes/test1>


... ...
configurações configurações
... ...
</Directory> </Directory>

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 17
Servidores web
 Configurações personalizadas para uma directoria
 As configurações possíveis são inúmeras, devendo
como é óbvio ser feitas com o devido cuidado

 Para mais informações sobre a configuração do


servidor Apache:
 http://httpd.apache.org/docs/2.2/configuring.html

(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para Internet I 18

Você também pode gostar