Implementando servidor de aplicações PHP utilizando Zend Framework

Esse mega artigo aborda todos os conceitos técnicos e práticos para a implementação de um servidor de aplicações PHP utilizando framework Zend, incluindo detecção de intrusão e entre outros conceitos. Vale a pena conferir.

[ Hits: 146.459 ]

Por: José Cleydson Ferreira da Silva em 27/04/2010


Padronizando o formato dos registros em arquivos de log



Os registros de log possuem extrema importância para administradores de sistemas, pois, a única forma que temos de detectar erros ou falhas é por meio da análise de arquivos que registram as transações realizadas pelo servidor, portanto é interessante padronizar esses registros de modo que possam ser lidos de forma clara e inteligível. Fazer essas configurações nem sempre são fáceis, o que requer um planejamento para padronizar os registros.

Separar os registros de cada sistema, ou portal, é a forma mais adequada para que não haja confusão na hora de procurar por falhas, de posse disso, pode-se direcionar os registros para um arquivo específico, bastando indicar o caminho do arquivo no parâmetro ErrorLog dentro do arquivo .htaccess, porém é necessário criar o arquivo dentro do diretório /var/log/apache2. Sugere-se que esse arquivo possua um nome que faça referência ao domínio utilizado, como mostra o exemplo abaixo.

ErrorLog /var/log/apache2/gnu-lia-error.log

Por padrão, o apache gera registros log com formatos com padrão próprio que por sua vez, tornam-os complicados para leitura, embora, é possível modelar o formato do registro conforme a necessidade de informações.

O módulo responsável por permitir essa formatação é o módulo mod_log_config, que é compatível com o apache 1.3 ou superior. Suas configurações podem ser feitas no arquivo de configuração principal apache.conf e no arquivo .htaccess caso esteja configurado no parâmetro AccessFileName no arquivo principal.

As linhas adicionadas no arquivo podem conter o nome do host, log remoto, usuário remoto e, caso necessite de autenticação, data, hora e status de requisição. Usa-se dois parâmetros para formatar o registro, LogFormat que define o formato e CustomLog que indica o diretório e um alias (nickname).

Veja abaixo todos os caracteres responsável pela formatação.

Tabela de caracteres:

CaracteresEspecificação
%aIP remoto
%AIP local
%BBytes enviados, exceto cabeçalho HTTP
%bBytes enviados, exceto cabeçalho HTTP, adicionando – (Traço) quando for 0 bytes
%cEstado de conexão, quando concluída
%fFileName: Nome de arquivo
%hHost remoto
%HProtocolo de pedido
%lRefere-se a log remoto
%mRequisição de método
%RAntes de solicitar
%sStatus da requisição
%tData e Hora padrão americano
%TTempo para atender a solicitação em segundos
%uUsuário remoto, em caso de autenticação disponível pelo auth
%UURL solicitada
%vNome do servidor, que responde a solicitação
%VNome do servidor de acordo com a configuração do UseCanonicalName


A opção customLog define o arquivo onde serão adicionados os logs e Log Format pode definir uma série de formatos, bem como, registrar quais navegadores acessam determinado portal e formato de registro combinado.

"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""

Um exemplo de configuração de log padronizado utilizando o arquivo .htaccess pode ser visto abaixo.

<VirtualHost *>

     ServerName     cleysinhonv.gnu-lia.org
     ServerAlias      cleysinhonv.gnu-lia.org cleysinhonv  
     ServerAdmin    cleysinhonv@gmail.com
     DocumentRoot "/home/usuario/public_html"
     ErrorLog          /var/log/apache2/gnu-lia-error.log
     logFormat        "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" gnu-lia
     CustomLog      /var/log/apache2/gnu-lia-error.log
     RedirectMatch ^/$ www.gnu-lia.org/cleysinhonv

</VirtualHost>

Para validar as configurações é necessário reiniciar o serviço.

Página anterior     Próxima página

Páginas do artigo
   1. Índice
   2. Introdução
   3. Sobre Zend Framework
   4. Particionamento
   5. Instalação do Servidor Web
   6. Habilitando o módulo mod_rewrite
   7. Habilitando o módulo mod_userdir
   8. Instalando Zend Framework
   9. Testando Zend Framework
   10. Padrões de diretórios para aplicações do Zend Framework
   11. Script para a criar a estrutura de diretório do MVC
   12. Configurando restrição de acesso
   13. Configurando Virtual Host
   14. Padronizando o formato dos registros em arquivos de log
   15. Suporte a conexões seguras com SSL
   16. Configurando exibição de erros
   17. Liberando acesso a ftp
   18. Rotinas de backup
   19. Ferramenta para detecção de intrusão (opcional)
   20. Acelerando o PHP (opcional)
   21. Considerações finais
Outros artigos deste autor

Como migrar banco de dados MySQL para PostgreSQL

Implementando servidor web Java com Tomcat no Linux

Acessando desktop remotamente com noMachine

Implementando rotas estáticas no Linux com route

Conheça tudo sobre os hardwares que compõem o seu computador com um simples comando

Leitura recomendada

Quando é que eu vou usar isso na minha vida?

Um olhar para o futuro: cloud, big data, programadores, economia e software livre

Testando o Librix da Itautec

Compartilhando músicas pela Web com o Amarok

Programando em Octave (parte 1)

  
Comentários
[1] Comentário enviado por viniciusgnu em 27/04/2010 - 08:47h

Meu velho, como sempre está de parabéns! "Keep up with the good work"!
Abraço

[2] Comentário enviado por cleysinhonv em 27/04/2010 - 08:50h

Valeu Vinicius!

Como sempre "procurar" / "tentar" / "me esforçar" em publicar artigos completos que ajudem a comunidade como um todo!

[3] Comentário enviado por uberalles em 27/04/2010 - 11:00h

Que "putza" app server bacana!! Muito bem detalhado seu artigo e passo a passo.

[4] Comentário enviado por cleysinhonv em 27/04/2010 - 11:33h

Olá Andre Miguel,

Bacana né! Procurei Explicar de forma clara e detalhar o máximo possível! Acredito que este material irá ajudar muitas empresas e pessoas que queiram implemetar esse tipo de solução!

Um abraço!

[5] Comentário enviado por valterrezendeeng em 27/04/2010 - 13:04h

Muito Bom o Artigo
Bem Feito e completo

Parabéns !!!!


Abraço

[6] Comentário enviado por razgriz em 27/04/2010 - 13:10h

Belo artigo Kurumin, continue assim!

[7] Comentário enviado por cleysinhonv em 27/04/2010 - 13:16h

Olá valter! Olá Prof. RazGriz!

Obrigado! Fico grato e com sentimento de dever cumprido. Espero que esse artigo possa ajuda-los de alguma forma, utilize-o e indique-o a quem precisar!

Um abraço!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts