sábado, 17 de dezembro de 2011

A Tour of PHP.INI


Qualquer um que tenha um servidor utilizando PHP, sem dúvida, ouviu falar de php.ini - é o arquivo de configuração usado para controlar e personalizar o comportamento do PHP em tempo de execução. Ele fornece uma maneira simples de configurar as definições para coisas como:

Upload de Diretórios
Erros de log
Tempo máximo de execução de scripts

File Upload limite
... E muito mais.
php.ini é o arquivo PHP primeiro procura no arranque por causa da importância das diretivas de configuração ele define. No entanto, se você fizer alterações no seu php.ini , ele requer uma reinicialização do servidor para que as alterações tenham efeito.

A pré-fabricados php.ini arquivo com navios configurações recomendadas com PHP. Muitos provedores de hospedagem que suporte PHP permitem alguma forma de personalizar php.ini directivas para que você possa ajustar o comportamento do PHP do jeito que você gosta. Nesses casos, PHP utiliza apenas os valores para as directivas que você especificou em seu costume php.ini arquivo; quaisquer configurações você não declarar em seu arquivo são atribuídos os respectivos valores a partir do original php.ini e PHP built-in padrões.

Neste artigo darei uma visão geral de algumas definições importantes eu acredito que você deve se preocupar com ajustes quando seu próprio php.ini arquivo. Esta é apenas uma seleção pessoal, claro, e todos irão desenvolver suas próprias preferências ao longo do tempo, então eu recomendo que você faça algumas pesquisas sólidas para a miríade de directivas de configuração disponíveis no php.ini .

A localização do php.ini depende do servidor e como o PHP foi instalado. Para efeitos do presente artigo, vou assumir que é em / usr / local / lib / php / php.ini . Seu caminho pode ser diferente. Para saber onde o seu php.ini arquivo está localizado, você pode usar o phpinfo () função.
Portanto, vamos começar nossa turnê do php.ini arquivo, a primeira parada: o motor de directiva.

PHP Motor
motor = On

A configuração é o primeiro motor de directiva, que basicamente controla se o mecanismo do PHP é ligado ou desligado. Esta directiva é responsável por determinar se o PHP está disponível para seus scripts, e defini-lo como Off irá impedi-lo de usar PHP em tudo.
Você pode estar se perguntando por que eu ter incluído este, já que é óbvio que você deve deixar esta ativado, se você planeja usar o PHP. A resposta simples é ter isso em um costume php.ini arquivo permite que você assuma o controle completo do servidor PHP dentro de sua configuração personalizada. Você estará dando todas as suas regras personalizadas para PHP no arquivo, e eu acredito que é ineficiente para que o comutador mestre escondidos em outro arquivo, em vez de presentes no arquivo em que você estará visitando com mais freqüência.

A próxima parada é a uma directiva que eu considero como sendo o mais importante quando se trata de escrever código portável: short_open_tag .
Tags curtas
short_open_tag = On
O short_open_tag directiva permite aos desenvolvedores usar tags curtas, que em poucas palavras é quando um desenvolvedor iria escrever <? em vez de <? php . Um exemplo usando tags curtas é:

<? echo "Olá Mundo" ;?>
comparado ao uso de etiquetas completo:

<? Php echo "Olá Mundo" ;?>

Com short_open_tag ativado, você pode usar tanto <? e <? php . No entanto, há uma desvantagem muito grande para usar short-tags, especialmente quando você está desenvolvendo algo que se destina a ser usado em vários servidores PHP. Tags curtas são ativadas por padrão, mas pode causar alguns problemas de análise para algumas pessoas desativar a opção. Se seu código depende tags curtas, então ele não pode rodar em seu servidor. É altamente recomendado que você desligue short-tags em seu php.ini no desenvolvimento de código portátil para prevenir-se de usá-los.
Em seguida, vou destacar uma opção que todos, em qualquer nível de capacidade de desenvolvimento, terá tratado, mesmo sem conhecê-lo: o buffer de saída.
Buffer de saída
output_buffering = Off

Você provavelmente já viu um derivado da a seguinte mensagem em algumas ocasiões: Não é possível adicionar cabeçalhos cabeçalho informações já enviadas. Este aviso ocorre quando uma scripts tenta definir um cabeçalho HTTP (um elemento não visto pelo usuário, mas processado pelo navegador web nada menos) depois que ele já começou a enviar a saída de volta para o navegador do usuário. Permitindo output_buffering causas PHP para atrasar o envio dos cabeçalhos e, em vez enviá-los ea saída do seu script, ao mesmo tempo, uma vez que o script terminar o processamento. Isso permite que você alterar os valores do cabeçalho em qualquer ponto durante a execução do seu script.

É geralmente considerado que output_buffering é uma directiva que podem ser deixados ligado sem causar maiores complicações, para que possa ser útil para deixá-lo ligado, no caso a sua funcionalidade é sempre necessária. Pessoalmente, eu prefiro deixá-lo fora porque se você desenvolver um plugin para WordPress por exemplo, que será executado em vários servidores diferentes, você precisa prestar atenção que o código não dependem de saída automática de buffer para ser ligado.
Seguindo em frente, vamos dar uma olhada em duas opções que podem ser de grande benefício se você estiver criando um site que os modelos visuais partes cabeçalho comum e arquivos de rodapé:

auto_prepend_file e auto_append_file .

Os cabeçalhos e rodapés automáticos
auto_prepend_file = "header.php"
auto_append_file = "footer.php"

O auto_prepend_file e auto_append_file directivas permitem dizer PHP para anexar um arquivo a saída do seu script e anexar um arquivo no final. Esta é uma reminiscência da get_header () e get_footer () funções no WordPress, e pode ser muito útil se você estiver usando o cabeçalho comum e arquivos de rodapé. Esteja ciente, porém, que os arquivos especificados com essas diretrizes serão utilizadas para cada arquivo PHP, que não pode ser ser exatamente o que você quer.
Uma utilização alternativa para auto_prepend_file e auto_append_file é a criação de um temporizador de execução simples, que pode ser usado para referência ao tempo que leva para gerar uma página. Por exemplo, o arquivo carregado pelo auto_prepend_file pode conter:

<? Php
$ T1 = microtime (true);
... Eo arquivo para auto_append_file deverá conter:

<? Php
$ T2 = microtime (true);
Decorrido $ = $ t2 - $ t1 ;
$ Logfile = "/ tmp / timing.txt" ;

file_put_contents ( $ logfile , $ decorrido . "" . $ _SERVER [ REQUEST_URI "" ]. \ n "" , FILE_APPEND);
A próxima parada em nossa excursão é directivas PHP de manipulação de erro.
Tratamento de erros
error_reporting = E_ALL | E_STRICT
display_errors = Off
log_errors = On
error_log = "var / log / / php_errors.log"

As configurações que eu mostrei acima, é a configuração recomendada para relatórios de erro do PHP comportamento em um ambiente de produção. Um erro em seu script pode ser não-fatais (como um aviso ou advertência), ou fatal, que pára o seu script seja executado. Independentemente de saber se o erro é fatal ou não fatal, esta configuração irá instruí-PHP não exibir a mensagem de erro em sua saída e, ao invés guardá-lo para um arquivo de log de erro.
Ligando display_errors irá imprimir detalhes do erro no seu navegador, o que é útil para propósitos de desenvolvimento. Mas uma vez que seu site é implantado, mensagens de erro poderia ser uma distração para os seus usuários e até mesmo fornecer aos usuários mal-intencionados com conhecimento sobre a forma de atacar o seu site. É melhor enviar mensagens de erro em um arquivo de log para que só você e outros administradores terão acesso. Isto pode ser feito definindo o error_log directiva. As mensagens de erro que normalmente seriam exibidos no navegador, então, ser registrados no arquivo especificado em seu lugar.
Para mais informações sobre tratamento de erro, leia o artigo Sneha Heda, o Tratamento de erros em PHP .
A parada final em nossa turnê é ter um rápido olhar para os fusos horários em PHP.

Time Zones
date.timezone = "US / Central"
Esta definição não é definido por padrão no php.ini e quando E_STRICT relatório é ativado, o PHP irá emitir alertas a qualquer momento você usa uma função de data ou tempo em seu script. Isso pode ser facilmente resolvido através da criação do date.timezone directiva no arquivo de configuração.
Esta opção é frequentemente excesso olhado pelos desenvolvedores, mas é um que, se configurado corretamente, pode reduzir a chance de uma grande quantidade de complicações resultantes em seu script PHP em algum lugar abaixo da estrada. A lista completa de fusos horários suportados está disponível na documentação on-line.

Sumário
É altamente recomeçou que todos os desenvolvedores web dar uma olhada através de seu servidor php.ini arquivo e familiarize-se com o seu conteúdo, e personalizar algumas das directivas conforme apropriado. As diretrizes de configuração neste artigo deve dar-lhe um bom lugar para começar. Se você estiver usando um servidor compartilhado, a configuração definida pela empresa de hospedagem pode não ser sempre o melhor elogio, não podendo o seu estilo de codificação. Verifique com seu provedor para saber quais opções estão disponíveis para você personalizar o seu ambiente.

Nenhum comentário :

Postar um comentário

Total de visualizações de página