segunda-feira, 22 de fevereiro de 2016

Configurando e Turbinando o php.ini do Servidor


O arquivo php.ini é o responsável por gerenciais as variáveis de ambiente do PHP e configurar o ambiente de acordo com a necessidade. Nele é possível realizar parametrizações de localidade, timeout de execução, tamanho de formulários post, tamanho máximo de upload de arquivos, prints de erros e muitas outras coisas.

Para acessar o arquivo php.ini varia de cada distribuição, o ideal seria criar uma página PHP chamando a função phpinfo() e verificar maiores detalhes. Eu sei que em distribuições como Debian, CentOS e Slackware esses arquivos quase nunca mudam
 Debian Distros  
 # vim /etc/php5/apache2/php.ini  
 Slackware 
 # vim /etc/httpd/conf/php.ini

Mas caso não esteja, crie um arquivo info.php no seu localhost e chame a função phpinfo()




Diretrizes do PHP

Alterando o tempo de execução e timeout do servidor:

Utilizaremos o parâmetro max_execution_time para definir qual a quantidade de tempo em segundos que o servidor irá processar informações até retornar um timeout para o usuário. Essa configuração deve ser bem pensada para ser colocada em produção por motivos de segurança e necessidade. Em produção eu recomendo uma média de 20 á 30 segundos, mais tardar 60 segundos se sua aplicação depender de um processamento muito alto de informações.
 max_execution_time = 60   


Alterando o tempo de recebimento de informações:

alterando o max_input_time do servidor iremos limitar o tempo que os scripts poderam trafegar informações e quanto tempo ele poderá ficar recebendo as informações de requests para receber os dados. Esse parâmetro varia muito de aplicação para aplicação, supondo que você irá trabalhar com métodos que recebam requisições ajax ou XML gigantescos que levem minutos para serem processados, você deve ser bem generoso com esse parâmetro.
 max_input_time = 60  



Alterando o limite de consumo de memória do servidor:

Podemos também alterar a quantidade de memória que o servidor poderá consumir junto ao apache com a opção memory_limit. Essa opção vem por padrão com 128 MB de limitação, customize a sua vontade para atender as necessidades da sua aplicação, deixe com 1024MB se precisar, mas nunca deixe mais que 60% da memória total do servidor
 memory_limit = 128M  


Exibindo os erros do PHP

Está ai uma opção que nós devemos dar uma atenção bem detalhada. Essa opção reporta na tela todos os erros a nível servidor que acontecem na aplicação. No manual do PHP temos vários tipos de parametrização. No ambiente de desenvolvimento ou stage, é recomendado deixar a opção E_ALL que irá exibir todo e qualquer tipo de erro que o servidor processar, já em ambientes de produção, ou desabilitamos por completo ou deixamos a opção E_ALL & ~E_DEPRECATED & ~E_STRICT que irá exibir somente erros muito grandes. Não se esqueça de ligar a opção display_errors
 ; Common Values:  
 ;  E_ALL (Show all errors, warnings and notices including coding standards.)  
 ;  E_ALL & ~E_NOTICE (Show all errors, except for notices)  
 ;  E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.)  
 ;  E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)  
 ; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED  
 ; Development Value: E_ALL  
 ; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT  
 error_reporting = E_ALL  
 display_errors = on  # Deixe isso aqui ligado, mas desligue em produção :)


Limitando o tamanho de dados recebidos via POST

A opção post_max_size pode ser parametrizada para limitar o tamanho máximo de requests efetuados via post, também varia de caso para caso, mas por segurança, é bom deixar o valor default de 8MB ou até menos para evitar ataques de code injection pesados. Claro que não resolve o problema, mas é mais um murinho que existe entre nós e os atacantes..
 post_max_size = 8M  


Limitando o tamanho do upload de arquivos no servidor

Também é possível definir um tamanho em mb dos arquivos upados no servidor. Colocar esse limite é muito importante, mas também é necessário fazer uma avaliação dos recursos que sua aplicação irá suportar, inclusive quantos uploads ela poderá suportar de forma simultânea
 upload_max_filesize = 2M # Limita o tamanho dos arquivos do upload  
 max_file_uploads = 20 # Limita a quantidade de uploads simultâneos   


Definindo a timezone do servidor

Essa é uma parte importante dependendo do serviço que você irá rodar no seu servidor. O Zabbix como já abordamos em alguns posts aqui do blog reclama bastante disso. Você pode consultar as timezones suportadas a partir deste link do PHP manual.

Link das timezones suportadas: http://php.net/manual/pt_BR/timezones.php
 date.timezone = 'America/Sao_Paulo'  

São mais uma das coisas que eu anoto no meu Google Keep e depois passo aqui num post pra vocês.

Post sempre em construção, espero ter ajudado :)



SOBRE O AUTOR

Matheus Fidelis

http://msfidelis.github.io/

Power Ranger, Piloto de Helicópteros e Astronauta da NASA. Desenvolvedor Web PHP com foco em Backend e POO, Linux SysAdmin DevOps e Entusiasta Python. Criou esse site pra contribuir com a comunidade com coisas que aprende dentro de um setor maluco de TI :)

1 comentários:

 
Nanoshots | Open Source Security, Linux e Tutoriais © 2015 - Designed by Templateism.com