Apache, PHP

Alterando configurações do php.ini via apache

Written by Pedro Mendes · 1 min read >


Pra quem trabalha com vários projetos PHP em um mesmo servidor, sabe que ficar alterando o PHP.INI para cada besteira que algum projeto queria fazer não é uma coisa muito legal. Para falar a verdade não é nada legal… Por exemplo, não é legal trocar a pasta temporária de upload para um diretório que não possui permissão de escrita ou que esta em uma partição com pouco espaço disponível.

Entretanto ficar confiando no ini_set() do PHP realmente não é legal, pois ao meu ver caímos em dois problemas: as configurações do php.ini ficam extremamente espalhadas ( não queremos violar o DRY correto ?), e segundo é que não podemos fazer tudo com as funções ini_set() like.

Para quem não sabe, algumas configurações do php.ini não pode ser alteradas “on the fly”. A Zend criou um nível de segurança chamado PHP_INI_SYSTEM, que não podem ser alteradas em runtime ( clique aqui para ver a lista de funções e privilégios necessários).

A solução que encontrei foi simples mas eficaz ( além de seguir as orientações da própria Zend) : usar uma diretiva de diretório do Apache, lançando um PHP Admin Value. Fazendo isso você pode redefinir algum parâmetro do php.ini para um diretório específico no servidor. A idéia é mais ou menos a seguinte: No httpd.conf do apache, dentro da sessão Ifmodule , crie um diretório para sua aplicação e coloque o seguinte parâmetro:

<Directory “/caminho/para/o/projeto/”>
php_admin_value parametro_do_php_ini “novo_valor”
</Directory>

Com isso você pode sobrescrever o comportamento do php.ini inclusive em configurações mais avançadas. Sei que é redundante, mas como se pode perceber tive que usar o php como módulo para poder proveitar essa diretiva.

Magento em um ambiente distribuído

Pedro Mendes in PHP
  ·   4 min read

Factory Pattern e PHP

Pedro Mendes in PHP
  ·   9 sec read

One Reply to “Alterando configurações do php.ini via apache”

  1. Não percebi onde tenho que colocar o codigo.

    Onde encontro o httpd.conf?

    Estou a tentar alterar o valor do max_upload_size e já tentei criar um ficheiro php.ini na pasta do projecto mas despois o script deixa de funcionar correctamente.

    Queria experimentar este metodo mas não sei como fazer.
    Pderia ajudar-me?

Deixe um comentário

O seu endereço de e-mail não será publicado.