O documento descreve a instalação e configuração de servidores web Apache com MySQL e PHP nos sistemas operativos Windows e Ubuntu. Inclui instruções passo-a-passo e ilustrações sobre como configurar hosts virtuais, SSL, phpMyAdmin e outros recursos.
2. odução ............................................................................................................................................... 4
de de páginas e suas aplicações ...................................................................5
do Servidor Apache ......................................................................................................... 7
Instalação, Iniciação e Configuração de um Servidor Web com Apache, MySQL, PHP
no Windows (WAMP) ...........................................................................................................................8
Instalação, Iniciação e Configuração de um Servidor Web com Apache, MySQL, PHP
no Ubuntu (LAMP) .............................................................................................................................. 15
Conclusão ............................................................................................................................................... 30
Bibliografia ............................................................................................................................................. 31
1
UFCD 0840 - Servidores Web
5. O servidor Apache pode ser instalado no Linux e noutros sistemas operativos, suporta
algumas funcionalidades avançadas que iremos analisar e configurar ao longo do
presente trabalho.
A configuração do apache é efectuada com o recurso a determinados ficheiros de
configuração que iremos conhecer.
Para além das funcionalidades básicas, o Apache suporta módulos que acrescentam
novas funcionalidades.
Começaremos por focar a nossa atenção na configuração base do servidor Apache
que iremos abordar em seguida.
4
UFCD 0840 - Servidores Web
6. Um servidor de páginas disponibiliza informação numa rede, permite o acesso
simplificado através de cliente unificado e simples (browser WWW). Funciona como
interface entre aplicações e o utilizador, esconde as aplicações do utilizador, ajuda a
focar o utilizador nos serviços, permite construir novas aplicações através da
interligação de aplicações existentes
São necessários mecanismos de programação no servidor de páginas, tais como:
CGI – execução de programas externos;
Embebidos – linguagens internas ao servidor WWW.
Passaremos agora a mencionar alguns tipos de servidor de páginas:
Servidor HTTP Apache:
o Aplicação open source;
Servidor HTTP MS IIS:
o Aplicação proprietária;
Outros servidores HTTP
o Xitami, Zeus, OmniHTTPd, etc;
5
UFCD 0840 - Servidores Web
7. No uso dos servidores de páginas os dados são obtidos através de acessos ao servidor,
a sua compilação é por tipo e características do servidor, são geradas estatísticos
mensais.
Vejamos um gráfico onde nos mostra qual dos servidores é mais utilizado:
Ilustração 1 - Gráfico dos servidores
O servidor Apache é o mais utilizado como podemos ver no gráfico anterior, para
que isso aconteça, este servidor contém um conjunto de características para que tal
aconteça, vejamos:
Código mantido por uma comunidade aberta;
Elevada fiabilidade;
Excelente desempenho;
Grande flexibilidade de configuração e uso;
Suporte de várias plataformas;
Suporte do protocolo HTTP 1.1;
Estruturado em módulos;
Administração através de linha de comandos.
Vamos agora ver as aplicações disponíveis no servidor Apache.
6
UFCD 0840 - Servidores Web
8. O Apache como servidor Web tem como finalidade ser um servidor de páginas para
internet, mas pode ser usado como um servidor Web para acesso restrito, servir
exclusivamente para estações da rede interna.
Se usarmos um computador para partilha na internet, firewall ou proxy como um
servidor web interno, este, não consome muitos recursos, consome espaço em HD
conforme o que for disponibilizado.
Ao disponibilizar a página da empresa numa máquina interna, com o Apache
podemos obter uma economia de banda, ou disponibilizar documentos diversos,
tutoriais, instruções, normas da empresa e etc...
Fazer o download de ficheiros grandes e disponibilizar internamente, obtemos uma
grande economia de banda, o download interno é muito rápido, existe uma
separação destes ficheiros com o do servidor de ficheiros, protecção contra vírus
quando acedido por máquinas Windows, evita que os utilizadores naveguem na
Internet.
Podemos criar páginas com senha para restringir o acesso, utilizado em muitos casos
no backup de Discos Rígidos, em reinstalações, principalmente do Windows,
disponibilizar relatórios do SARG, relatórios de uso da internet com dados dos logs do
Squid.
Ilustração 2 - Apache
7
UFCD 0840 - Servidores Web
9. Para procedermos à instalação do Apache, Mysql e PHP no Windows, basta apenas
instalarmos o ficheiro WampServer. Como podemos ver na seguinte imagem:
Ilustração 3 - Instalação WampServer
Depois de instalado, a configuração do Wamp, é feita na directoria “c: wamp/www”.
Nesta directoria criamos uma pasta, e dentro desta pasta colocamos os ficheiros
pretendidos.
8
UFCD 0840 - Servidores Web
10. Sempre que quisermos colocar ficheiros no nosso servidor, basta realizar o
procedimento anterior.
Vejamos uns exemplos realizados em aula:
Ilustração 4 - Directoria da configuração Wamp
Agora se abrirmos o localhost ele vai abrir o índex, adicionado na directoria acima
referida:
Ilustração 5 - Página escolhida
9
UFCD 0840 - Servidores Web
11. Um outro passo importante que podemos realizar é o virtualhosts, ou seja todos os
computadores da rede acedem ao nosso servidor de páginas, vamos gora passar a
mencionar as configurações realizadas para que seja feita esta virtualização.
O primeiro passo é irmos à directoria “C: WINDOWS system32 drivers etc ”,
nesta directoria encontramos um ficheiro com o nome “hosts”, neste ficheiros
adicionamos as seguintes linhas “127.0.0.1 carlos/127.0.0.1 filipe”, estas linhas fazem
com que qualquer url com o valor “Carlos e Filipe”, seja reencaminhado para o
127.0.0.1(localhost), vejamos:
Ilustração 6 - Ficheiro hosts
De seguida, vamos editar o ficheiro "vhosts.conf-httpd", localizado na directoria "C:
bin wamp apache conf Apache2.2.11 ", e aqui vamos inserir o seguinte texto:
10
UFCD 0840 - Servidores Web
12. Reiniciamos todos os serviços na opção Wamp, como podemos ver na seguinte
imagem:
Ilustração 7 - Reiniciar serviços
Pronto em qualquer computador podemos aceder ao nosso servidor de Páginas:
Ilustração 8 - Aceder remotamente ao servidor de páginas
11
UFCD 0840 - Servidores Web
13. O próximo passo é colocar o openSSL a funcionar, para tal vamos instala-lo, vejamos:
Ilustração 9 - Instalação OpenSSL
Depois de instalado o OpenSSl, vamos à linha de comando do Winodws e vamos à
directória onde está instalado Apache, “C:wampbinapacheApache2.2.11bin”,
depois excutamos o seguinte comando “openssl genrsa -des3 -out server.key 1024”:
Ilustração 10 - openssl genrsa -des3 -out server.key 1024
12
UFCD 0840 - Servidores Web
14. Após criarmos a nosso pass phrase, segue-se um tipo de questionário, sobre o nosso
país, etc, para que isso existe a necessidade de executarmos o seguinte comando
“openssl req -new -key server.key -out server.csr –config
C:wampbinapacheApache2.2.11confopenssl.cnf”:
O próximo passo será criar um certificado, para basta ainda na consola digitar o
seguinte comando “openssl rsa -in server.key -out server.key”, digitamos a pass
phrase criada anteriormente e está criado o nosso certificado:
Ilustração 11 - Criar Certificado
Durante estas operações realizadas anteriormente, esta foram guardadas na
directoria actual “/bin”,então existe a necessidade de as copiarmos para a directoria
para “/conf”, basta digitarmos o seguinte comando “Copy server.*
C:wampbinapacheApache2.2.11confconf*”, os ficheiros a ser copiados são
server.key, server.csr e server.crt:
13
UFCD 0840 - Servidores Web
15. O próximo passo, passa pela configuração de alguns ficheiros, que precisam de ser
configurados consoante as nossas necessidades, para que o SSL, funcione
correctamente, são eles httpd-ssl.conf e httpd.conf.
Comecemos por o httpd.conf, aqui vamos descomentar (retirar o símbolo cardinal)
nas seguintes linhas existentes no documento:
Abrimos o ficheiro httpd-ssl.conf e procuramos pelas seguintes linhas e observamos se
o caminho dos ficheiros server.key e server.crt estão correctos e descomentamos as
linhas em questão:
Ilustração 12 - Ficheiro httpd-ssl.conf
Pronto, o OpenSSL, está a funcionar no nosso servidor Apache.
14
UFCD 0840 - Servidores Web
16. Vamos agora mostrar como procedemos à instalação e configuração do Apache,
Mysql e Php no Ubuntu.
Começamos com a instalação do Apache, como habitual no Ubuntu para qualquer
instalação usamos o comando “apt-get install apache2”:
Ilustração 13 - apt-get install apache2
Depois de instalado o Apache, vamos agora instalar o Mysql, usando o comando
“apt-get install mysql-server mysql-client”, neste passo seremos solicitados para
fornecer uma senha para o utilizador root do MySQL, esta senha é válida para o
utilizador root @ localhost:
15
UFCD 0840 - Servidores Web
17. Ilustração 14 - PassWord
Ilustração 15 - apt-get install mysql-server mysql-client
Agora vamos passar à instalação do PHP5 “apt-get install php5 libapache2-mod-
php5”:
16
UFCD 0840 - Servidores Web
18. Ilustração 16 - apt-get install php5 libapache2-mod-php5
Depois de instalado o PHP5, existe a necessidade de reiniciarmos o servidor apache,
para isso executamos o seguinte comando: “/ Etc/init.d/apache2 restart”:
17
UFCD 0840 - Servidores Web
19. Ilustração 18 - Reiniciar servidor Apache
O phpMyAdmin é uma interface Web através da qual podemos gerir as nossas bases
de dados MySQL, torna-se numa ferramenta muito útil, por isso vamos mostrar como
procedemos à sua instalação, digitamos o seguinte comando “aptitude install
phpmyadmin”:
Ilustração 17 - aptitude install phpmyadmin
Durante esta instalação devemos escolher as opções que nos são sugeridas:
18
UFCD 0840 - Servidores Web
21. Ilustração 21 - Configuração PHPMYADMIN3
Ilustração 22 - Configuração PHPMYADMIN4
Feitas todas as instalações, vamos agora passar para as configurações para que tudo
funcione correctamente.
20
UFCD 0840 - Servidores Web
22. Para criar um virtual host no apache2 instalado no Ubuntu, temos de criar pastas
dentro da directoria /var/www, por exemplo no meu caso criei a directoria carlos.local
através do comando, “mkdir /var/www/carlos.local”, vejamos:
Ilustração 23 - mkdir /var/www/carlos.local
De seguida vamos editar o ficheiro “sites-available” que se encontra nesta directoria,
digitamos o comando “sudo getdit /etc/apache2/sites-available/carlos.local”:
Ilustração 24 - sudo getdit /etc/apache2/sites-available/carlos.local
21
UFCD 0840 - Servidores Web
23. Irá aparecer uma janela com o ficheiro que vamos editar:
Guardamos este ficheiro e fechamos.
De seguida vamos editar o ficheiro “hosts” do Ubuntu: “sudo gedit /etc/hosts”,
adicionamos a seguinte linha: “127.0.0.1 carlos.local”
Ilustração 25 - Ficheiro hosts
Guardamos e fechamos.
Vamos abrir o ficheiro “apache2.conf”, “sudo gedit /etc/apache2/apache2.conf” e
certificarmo-nos de que ele possui as linhas:
22
UFCD 0840 - Servidores Web
24. NameVirtualHost *:80
Listen 80
Editamos se for preciso (adicionamos as linhas), guardamos e fechamos.
Na consola, desabilitamos o site default do apache: “a2dissite default”:
Ilustração 26 - a2dissite default
E habilitamos o nosso vhost: “a2ensite carlos.local”
Ilustração 27 - a2ensite carlos.local
23
UFCD 0840 - Servidores Web
25. Digitamos o seguinte comando: “sudo /etc/init.d/apache2 reload”
Ilustração 28 - Recarregar o Apache
Em seguida vamos até à directoria /var/www/carlos.local, e criamos um novo ficheiro,
“index.html”, e inserimos o seguinte código:
Ilustração 29 - Criar ficheiro index.html
24
UFCD 0840 - Servidores Web
26. Abrimos o browser e acedemos a http://carlos.local, e lá está o ficheiro que criámos
anteriormente. O virtual host está criado!
Para criar outros, seguimos o mesmo processo, substituindo carlos.local pelo nome do
novo virtual host.
Para habilitarmos o SSL no Apache2 do Ubuntu temos de aceder à directoria /etc/ssl
executando o comando “cd /etc/ssl”:
Ilustração 30 - cd /etc/ssl
O primeiro passo é gerarmos um par de chaves RSA através do comando “sudo
openssl genrsa -aes256 -out server.key 1024”,
Ilustração 31 - sudo openssl genrsa -aes256 -out server.key 1024 25
UFCD 0840 - Servidores Web
27. Depois de gerarmos o par de chaves, temos de criar um certificado (CSR - Cert signing
request), executamos o comando “sudo openssl req -new -key server.key -out
server.csr”, vejamos:
Ilustração 32 - sudo openssl req -new -key server.key -out server.csr
Neste ficheiro aparece-nos um formulário de informações que ficará incorporado no
certificado. Em seguida vamos criar Self Sign Certificate, executamos o comando
“sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt”,
vejamos:
Ilustração 33 - sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
26
UFCD 0840 - Servidores Web
28. Em seguida movemos o certificado e a respectiva chave para as pastas apropriadas,
digitamos os comandos, “sudo mv server.crt certs/” e “sudo mv server.key private/”:
Ilustração 35 - sudo mv server.key private/
O próximo passo é habilitar o default-ssl site no apache2, para isso digitamos o
comando “cd /etc/apache2/”, entramos na directoria e habilitamos o módulo ssl,
vejamos:
Ilustração 34 - cd /etc/apache2
27
UFCD 0840 - Servidores Web
29. Em seguida habilitamos o default-ssl site com o comando “sudo a2ensite default-ssl”:
Ilustração 36 - sudo a2ensite default-ssl
Depois vamos editar o ficheiro sites-enabled/default-ssl com o comando, “sudo gedit
sites-enabled/default-ssl”:
Ilustração 37 - Ficheiro default-ssl
28
UFCD 0840 - Servidores Web
30. Depois basta reiniciarmos o apache2, digitamos o comando “sudo service apache2
restart”:
Ilustração 38 - Reiniciar Apache
Para testar e finalizar temos de abrir o browser e digitar no meu caso o endereço
https://carlos.local, e funciona.
29
UFCD 0840 - Servidores Web
31. Depois de realizado este trabalho podemos estabelecer as diferenças existentes entre
as duas plataformas (Windows/Linux (Ubuntu)).
A instalação dos servidores em ambos é muito fácil de realizar, pois basta instalar o
Wamp em Windows e o Lamp em Linux, mas existem algumas dificuldades na
configuração do OpenSSL no Windows, coisa que no Ubuntu, torna-se uma
configuração muito fácil e rápida de se executar.
Vejamos agora algumas vantagens do uso da plataforma Linux:
O Linux tem uma boa reputação para maior segurança, e em muitos casos
não é necessário instalar software antivírus ao nível do servidor. Graças à
natureza bloqueado, modular de sistemas baseados em Unix, é difícil para um
vírus se infiltrar no sistema sem a expressa autorização do administrador.
Apesar da reputação como um sistema operativo para "nerds", é muito bem
organizado e lógico. Há poucas camadas de abstracção que reduz o inchaço
de código, e a natureza do código aberto do Linux significa vulnerabilidades
são localizados e corrigidos mais rapidamente.
Envolve menos preocupações e custos, e é mais confiável do que no Windows.
Também sai no topo em termos de segurança e protecção, e custa menos, pois
é OpenSource.
Concluímos então que a plataforma Linux é a mais fiável a nível de servidores Web.
30
UFCD 0840 - Servidores Web
32. Este trabalho teve como base o seguintes sites:
https://help.ubuntu.com/10.04/serverguide/C/httpd.html;
https://help.ubuntu.com/10.04/serverguide/C/web-servers.html;
http://tuxtweaks.com/2010/04/installing-lamp-on-ubuntu-10-04-lucid-lynx/;
http://tuxtweaks.com/2009/07/how-to-configure-apache-linux/;
http://blog.idealmind.com.br/geral/criando-virtual-hosts-no-linux-ubuntu-9-
10/;
https://wiki.auckland.ac.nz/display/BeSTGRID/Enabling+SSL+on+Apache2++%2
8Ubuntu+10.10%29;
http://www.andyhawthorne.net/2010/10/setting-up-a-lamp-server-on-
ubuntu-10-10/;
http://www.jonasmartinez.com/posts/criando-virtual-host-no-apache-2-2-
windows;
http://www.ruifeio.com/2011/01/30/setting-up-virtual-hosts-on-wampserver/;
http://www.neilstuff.com/apache/apache2-ssl-windows.htm;
http://imasters.com.br/artigo/3465/servidores_windows/instalando_ssl_no_apac
he2_em_ambiente_windows/;
http://pt.howticle.com/como-configurar-ssl-do-apache-para-windows.html;
http://ubuntu.no.sapo.pt/ssl.html;
http://nurulislam.wordpress.com/2008/06/24/https-and-ssl-setup-step-by-step-
guide/;
http://www.htmlstaff.org/ver.php?id=19702;
http://www.codigofonte.net/dicas/php/91_sistema-de-login-e-senha-com-bd;
http://osdir.com/ml/culture.publications.dicas/2008-06/msg00016.html;
http://rubayathasan.com/tutorial/apache-ssl-on-windows/;
http://phpbrasil.com/artigo/TRRz8rR-Qz_U/configurando-o-apache-22-com-
ssl-e-php-52-no-windows;
31
UFCD 0840 - Servidores Web