config apache php

13
Capitulo 10 Apache - 95 Capitulo 10 Apache 10 .1 . Obj et iv os Entender a confiquracao basica do apache2; Habilitar a linguagem PHP5 no apache2; Configurar dominios virtuais , Habilitar suporte a SSL. 10.2. Intro~u~aote6rica o Web Server Apache e urn esforco comunitario feito por desenvolvedores ao redor do mun o, no qual 0 objetivo consiste em desenvolver urn Web Server de c6digo fonte aberto, estavel e seguro. Em 1996, tornou-se urn dos Web Servers mais populares no mundo, e, desde entao, mantem sua posicao como 0 servidor web com. a maior base instalada no mundo. Segundo uma pesquisa feita pelo site NerCraft, 0 Apache esta servindo em media, 50% dos sites pesquisados. Isso so foi possivel qracas a uma serie de qualidades, das quais algumas serao listadas na lista abaixo: E software livre, podendo ser modificado e adptado. Suporta varias linguagens, como PHp, Python, Ruby, Perl, inclusive ASP .NET; Mult i plat af orm a;

Upload: denigles-mendes

Post on 07-Apr-2018

297 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Config Apache Php

8/4/2019 Config Apache Php

http://slidepdf.com/reader/full/config-apache-php 1/13

Capitulo 10Apache - 95

Capitulo 10

Apache

10.1. Objetivos

Entender a confiquracao basica do apache2;

• Habilitar a linguagem PHP5 no apache2;

Configurar dominios virtuais,

Habilitar suporte a SSL.

10.2. Intro~u~aote6rica

o Web Server Apache e urn esforco comunitario feito por desenvolvedores ao

redor do mundo, no qual 0 objetivo consiste em desenvolver urn Web Server de

c6digo fonte aberto, estavel e seguro. Em 1996, tornou-se urn dos Web Servers mais

populares no mundo, e, desde entao, mantem sua posicao como 0 servidor web com. a

maior base instalada no mundo.

Segundo uma pesquisa feita pelo site NerCraft, 0 Apache esta servindo em

media, 50% dos sites pesquisados. Isso so foi possivel qracas a uma serie de

qualidades, das quais algumas serao listadas na lista abaixo:

E software livre, podendo ser modificado e adptado.

Suporta varias linguagens, como PHp, Python, Ruby, Perl, inclusive ASP .NET;

Multi plataforma;

Page 2: Config Apache Php

8/4/2019 Config Apache Php

http://slidepdf.com/reader/full/config-apache-php 2/13

Capitulo 10 Apache - 96

POSSU!uporte a varias funcionalidades providas por modules.

Pode trabalhar com multi threads ou multi processos.

10.3. MPMWorker e MPM PreFork

De acordo com a documentacao oficial do projeto Apachempm, e possivel

escolher entre algumas confiquracoes que ajudam a otimizar a performance ou

manter a compatibilidade com aplicacoes antigas, por exemplo. Vamos enteder as

particularidades domodo PreFork e Worker.

10.3.1. MPM Pre Fork

Neste modo, 0 Apache trabalhara com a implementacao de multi processes.

de acordo com a estrutura classica de urn processo de Unix, similar a versao 1.3 do

Webserver em questao.

Assim sendo, urn unico processo sera responsavel por executar novos

processos que serao utilizados para aguardar novas conexoes e responder as

requisicoes existentes. Este modo e ideal para quem precisa manter compatibilidade

com aplicacoes e bibliotecas que nao suportam 00modo thread.

10.3.2. MPM Worker

No modo MPM Worke~ 0 Apache trabalhara com uma implementacao mista

de processos e threads, 0 que possibilita atenteder mais conexoes simultaneas com

urn custo menor de hardware, ja que threads, por definicao. sao mais velozes que

processos.

Neste modo, 0apache mantem uma serie de threads ociosas. fazendo com que

Page 3: Config Apache Php

8/4/2019 Config Apache Php

http://slidepdf.com/reader/full/config-apache-php 3/13

Capitulo 10Apache - 97

novas conex6es sejam processadas e respondidas de uma maneira mais rapida do

que no modo Pre Fork. Infelizmente, nem toda aplicacao se da bern com threads,

como 0PHP5, por exemplo.

10.4. Pratica dirigida

10.4.1. Insta'a~ao doApache 2

1) Vamos instalar 0Apache 2:~-------------------

I # aptitude install apache2

oApache2 noDebian e dividido em uma serie de arquivos e diretorios.

Vamos conhecer estes arquivos e suas respectivas futicoes.

/etc/apache2/apache2.conf -Arquivo de confiquraciio principal;

/etc/apache2/modules.con[ -Arquivo de confiquraciio de modules:/etc/apache2/ports.conf- Arquivo de confiquraciio de portas;

/etc/apachez/sites-avaitable - Confiquraciio de sites disponiveis,

/etc/apaches/mods-availoble - Modulos habilitados;

• 2) Abra 0arquivo de confiqurcao para que possamos visualizar as

principais opcoes de confiquracao do Apache:

#vim /etc/apache2/apache2.conf

Avariavel ServerRoot define aonde 0Apache deve procurar por seus arquivos

de confiquracao. No exemplo abaixo, os arquivos de confiquracao serao procurados

em /etc/apache2:

ServerRoot /etc/apache2

]a a variavel DocumentRoot diz ao Apache aonde procurar os sites que deve

Page 4: Config Apache Php

8/4/2019 Config Apache Php

http://slidepdf.com/reader/full/config-apache-php 4/13

Capitulo 10Apache - 98

ser apresentados aos usuaries. No exmeplo, os sites serao armazenados em

/var/www:

-----1

I

DocumentRoot /var/www

o usuario e grupo que executa 0apache sao definidos pelas variaveis abaixo:

User $APACHE RUN USERS_

Group $APACHE_RUN_GROUPI

------~---

Caso seja encontrado algum erro durante 0 funcionamento do Apache, 0

mesmo sera registrado de acordo com 0 desiginos da variavel ErrorLog, como no

exemplo abaixo:

I ErrorLog /var/1og/apache2/error.1ogL___ _

I

._----- __j

E, ainda falando em logs, 0 Apache suporta a declaracao de registros

personlizados atraves do uso da variavel LogFormat:

I

~LOgFOrmat "%h %1 %u %t \"%r\" %>s %b \"%Refereri\" \"%User-Agenti\""

combined

3) Os logs, por padrao, serao annazenados no fonnato "combined",

dentro do diret6rio Ivar/log/apac~e2/access.log, e 0 fonnato"combined"fara 0registro dos seguintes itens:

%h - Hostname ou endercco IP do visitante;

%1- Hifen:

%u -Nome de usuario. caso exista;

%t - Horario de acesso;

%r - Requisicao solicitada;

%>s - 0 resultado da sclicitacao ;

%b - 0 tamanho em bytes da resposta;

Refereri -0 site anterior a visita, se informado:

Page 5: Config Apache Php

8/4/2019 Config Apache Php

http://slidepdf.com/reader/full/config-apache-php 5/13

Capitulo 10Apache - 99

• User-Agenti - 0 navegador do visitante, se informado.

A.. prova pode perguntar sobre as variav~j~ErrorLog, CustomLOg~

ServerRoot e DocumentRoot. I-------------_ .._---------------------- -

10.5. Ajustes do modulo Worker e PreFork

Ainda dentro do arquivo de confiquracao do apache, existem ajustes de

performance para os modules MPM Worker e MPM Prefork. Por padrao, 0 apache

vern configura do para trabalhar em MPM Worker, entao. vamos entender suas

confiquracoes.

1 StartServers 2

2 MaxClients 150

3 MinSpareThreads25

4 MaxSpareThreads75

5 ThreadsPerChild25

6 MaxRequestsPerChildO

• A variavel StartServers configura 0mimero inicial de servidores;

A variavel MaxClients, 0numero maximo de conexoes simultaneas;

A variavel MinSpareThreads, configura 0 valor minimo de threads em

espera;

A variavel MaxSpareThreads, configura 0 valor maximo de threads em

espera;

• E a va ravel MaxRequestPerChild, configura 0 valor maximo por

processo.

o modulo Pre Fork tamhern possui ajustes similares ao modulo Worker:

Page 6: Config Apache Php

8/4/2019 Config Apache Php

http://slidepdf.com/reader/full/config-apache-php 6/13

Capitulo 10Apache - 100

!

I

__ j

1 Start Servers 5

2 MinSpareServers 5

3 MaxSpareServers10

4 MaxClients 150

5 MaxRequestsPerChildO

Avariavel StartServers configura 0numero inicial de servidores;

A variavel MinSpareServer, configura 0 valor minimo de process os em

espera;

A variavel MaxSpareThreads, configura 0valor maximo de processo ern

espera;

Avariavel MaxClients, 0numero maximo de conex6es simultaneas;

E a varavel MaxRequestPerChild, configura 0valor maximo por processo.

10.6. Seguranc;a

Dentro do arquivo security, vamos colocar as regras de sequranca:

~etc/apache2

~ vim conf .d/s~~~~ity--~-.------. ~~~~

As variaveis abaixo ajudam a dificultar 0 processo de descoberta da versao do

servidor e sistema operacional:

ServerSignature Off

ServerTokens Prod

TraceEnable Off

Page 7: Config Apache Php

8/4/2019 Config Apache Php

http://slidepdf.com/reader/full/config-apache-php 7/13

Capitulo 10Apache - 101

Apos efetuar os ajustes, se necessario, reinicie 0 servidor apache:

~~nVOke-rC.d apache2 restart

10.7. Suporte a PHP

A lingua gem de proqramacao PHP e uma das mais populares entre os

desenvolvedores Web. Muitas ferramentas de blogs, WebSites e tamhem ferramentas

web para administracao de services e servidores, como 0PhpLdapAdmin, necessitam

ter 0PHP5 configurado como pre requisito para instalacao.

1) Instalando 0suporte a PHP5:

l ! _ a~=-~~~d_e_~~s~all Ph~~---;:i~~-~-a-~~e;~~o~-PhP5--------------------------~

2) Verifique se os modules do PHP5 estao ativados:

1# is -1 /etc/apache2/mods-enab1ed

~ apache2ctl -M

3) 0 PHP5 e ativado por padrao durante a Instalacao do modulo,

porem, caso necessario, habilite 0suporte manualmente:,---------------- -----~-------------~---------------------------

L#a2enmod php5

I Na plataforma Red Hat a habilitaciio de modules e {eita utilizando 0

I comando system-config-http.

Page 8: Config Apache Php

8/4/2019 Config Apache Php

http://slidepdf.com/reader/full/config-apache-php 8/13

Capitulo 10Apache - 102

4) Reinicie 0Apache:

i, # /etc/init.d/apache2 restartiL __ _ ____ ~ __ ~_

5) Testando 0PHP, para testar, crie urn arquivo com 0nome index.php

no dlretnrlo /var/www/ com 0 conteudo a seguir e abra no seu

browser:

l# vim /var/www/index.PhP_ .

!I ?

I ~ : P i n f O ( )-----------------------------

Agora, acesse sua paqina WEB e verifique 0 resultado.

n:\ I 0 arquivo /etc/php5/apache2/php.ini, armazena as confiquracoes do

"!::I funcionamento do php5 com apache2.

A funciio do arquivo e seu path completo podem ser cobrados na LPI.

oApache2 e sua confiquraciio provo 202 - peso 3.

10.8. Domlnios virtuais

Urn Dominio Virtual e uma funcionalidade que permite ao seu servido Web

responder com urn ou mais sites em urn mesmo IP, 0 que possibilita acessar services

e paqinas diferentes em urn mesmo servidor; apenas apontando a entrada DNS

correta nos arquivos de confiquracao.

Os domini os virtuais devem ser configurados neste dois diretorios:

/etc/apache2/sites-available: Neste diret6rio ficam todos os arquivos de

confiquracao dos dominios virtuais;

Page 9: Config Apache Php

8/4/2019 Config Apache Php

http://slidepdf.com/reader/full/config-apache-php 9/13

Capitulo 10Apache - 103

/ete/apaehe2/sites-enabled: Neste diret6rio fnam todos os dominies

virtuais ativos. que na verdade sao links simb6licos para os arquivos de

confiquracao localizados no diret6rio citado anteriormente.

1) Vamos eriar um dominio virtual:

L # vim /etc/apache2/sites-available/www.microx.com.br

-I1 # Host Virtual

I

2

3 NameVirtualHostwww.microx.com.br

I

4

1 5 <VirtualHost www.microx.com.br>

I 6

DocumentRoot /var/www/microx.com.br

ServerName microx.com.br

9

ServerAdmin [email protected]

ErrorLog /var/log/apache2/microx.com.br-error.log

CustomLog /var/log/apache2/microx.com.br-access.log common

</VirtualHost>

10

I 11

A prova de certificaciio pode cobrar 0usa de para metros como ErrorLog e

sua funciio

2) erie 0dire~orio onde vai fiear hospedado 0dominio virtual:

I

~ mkdir /var/www/microx.com.br

3) Dentro do diretorio recem eriado, erie um arquivo ehamado

index.html:

I#vim /var/www/mictox.com.br/index. h~~~~---'---- l

Page 10: Config Apache Php

8/4/2019 Config Apache Php

http://slidepdf.com/reader/full/config-apache-php 10/13

Capitulo 10Apache - 104

I <title> Minha pagina <title>

I 3 <body>

i 4 Funciona! :.)

I 5 </body>

1 6 </html>l ..__ ~ ._..~_~ .__ .. . _

4) Paratestar a sintaxe de seu arquivo deVirtual Host:

[~-~a~~c~e2 ct 1 - S .---~-:_-_ -______-_-_~

5) Utilize 0comando a2ensite para habilitar 0dominio virtual recem

criado:

l# a2ensite

6) 0 apache possui urncomando para habilitar 0dominio virtual sem

a necessidade de criar os links virtuais via linha de comando:~ ~ - = - - - - - - . . . _ -~enmod www.microx.com.br

------ ...__.__-----_,

III

7) Recarregue as confiquracoes sem reiniciar 0apache:

~ invoke-rc. d apache2 reload

Agora, no seu navegador Web, acesse 0 site www.microx.com.br e veja se 0

mesmo esta funcionando.

10.9. Suporte a HTTPS

o SSL, ou Secure Sockets Layer; e urn padrao Web que permite trafegar dados

seniveis e confidenciais, com sequranca atraves da internet, utilizando 0 protocolo

HTTPS. Sendo assim, e extremamente importante que 0 administrador de redes

configure 0 acesso SSLpara sites que necessitam deste tipo de protecao.

Page 11: Config Apache Php

8/4/2019 Config Apache Php

http://slidepdf.com/reader/full/config-apache-php 11/13

Capitulo 10Apache - 105

1) Verifique se 0modulo ssl esta hahllltado, el em easo neqattvo,

habilite-o:

I # a2enrnod ssll__

o SSL trabalha com 0 conceito de certificados public os, entao. devemos

efetuar os procedimentos de criacao do certificado que sera fornecido aos clientes.

2) Entre no diret6rio que ira armazenar0eertifieado:

i # cd /etc/sslI

3) Criea ehave que sera usada para assinar 0eertifieado:I-----~-~~--~--~- ----~--------~---- ------

I # openssl genrsa -out rnicroX.key 1024L~ _

4) Com a ehave em maos, erie 0 eertifieado (fique atento as

perguntas):

Jopenssl req -new -key rnicroX.key -out rnicroX.csr

Depois de criar 0 certificado, voce pode envia-lo a uma unidade certificadora,

que 0 assinara por urn valor anual, ou, caso voce mesmo pode assinar 0 certificado,

lembrando que, neste caso, 0 cliente dira que 0 certificado n E W foi reconhecido por

uma unidade certificadora.

5) Para envia-lo a uma unidade eertitieadora:

# openssl x509 -req -days 365 -in microX.csr -signkey microX.key -out

microX.crt-----~~----- -----------------------------~~

Page 12: Config Apache Php

8/4/2019 Config Apache Php

http://slidepdf.com/reader/full/config-apache-php 12/13

Capitulo 10Apache - 106

6) Apes gerar 0 certificado, configure seu dominio Virtual:

1 NameVirtualHost *:443

2 <VirtualHost *:443>

DocumentRoot /var/www/microx.com.br

4 ServerName *:443

ServerAdmin [email protected]

ErrorLog /var/log/apache2/microx.com.br-error.log

CustomLog /var/log/apache2/microx.com.br-access.log common

SSLEngine on

SSLCertificateFile /etc/ssl/microX.crt

10 SSLCertificateKeyFile /etc/ssl/microX.key

11 </VirtualHost>

12

13NameVirtualHost www.microx.com.br:80

14 <VirtualHost www.microx.com.br:80>

B RewriteEngine On

~ Options +FollowSymlinks

1

17 rewri teCond %SERVER PORT 80

18 rewriteRule A(.*)$ https://www.microx.com.br/$l [R,L]

~ /VirtualHos ~~ _

7) Ative 0mod_rewrite para que, toda vez que alquem acessar seu

site, seja automatlcamente redirecionado para 0 site com HTIPSativado:

#a2enmod rewrite

8) Reinicie 0apache:I----------~-----~~--------~-~------~~-~-

I #invoke-rc.d apache2 stop

I #invoke-rc. d apache2 start

9) Agora, abra 0navegador e efetue 0teste no endere~o:

.[-h-t-t-P-:-/-/-www.microx.com.br

I

Page 13: Config Apache Php

8/4/2019 Config Apache Php

http://slidepdf.com/reader/full/config-apache-php 13/13

Capitulo 10Apache - 107

10.10. Exerciciote6rico

1) Voce precisa alterar a porta de trabalho do seu Apache para a porta 8000.

Qual seria 0procedimento?

2) Os usuaries reclamam que 0 site esta muito lento na hora de navegar no

servidor. Sabendo que voce tern memoria sobrando na maquina e que 0

problema nao e a rede, qual atitude tomaria de imediato?

3) Seu supervisor pediu que voce mudasse 0 diretorio padrao do Apache para

o diretorio /sites. Quais procedimentos devem ser tornados?

--- _ _ - - ~------------------------------

10.11. Laborat6rio

1. Mude a paqina de erro padrao 404 para uma mensagem personalizada. DICA:Use os exemplos no proprio arquivo:

2. Descubra na documentacao oficial do apache 0 que faz 0 modulo Rewrite e

como ele funciona;

3. Crie urn dominio virtual com 0seu sobrenome.