Maneira correta de modificar o php.ini para o Apache e / ou o CLI

5

Eu quero mudar e adicionar algumas diretivas do PHP, algumas para o apache, outras para o CLI e outras para ambos. Por exemplo, desejo definir o fuso horário padrão para todos os contextos do servidor. Existem algumas maneiras diferentes de abordar isso, mas não sei qual é a melhor abordagem.

Eu posso editar diretamente os arquivos master php.ini, que estão aqui /etc/php/7.0/apache2/php.ini e aqui /etc/php/7.0/cli/php.ini , mas não sei se esse arquivo será substituído na atualização. Também para configurações compartilhadas, como o fuso horário, tenho que lembrar de editar dois arquivos e manter essas alterações sincronizadas.

Eu posso usar as diretivas php_admin_value , php_admin_flag , php_value e php_flag do Apache. A vantagem aqui é que as configurações do php podem ser aplicadas em um host virtual por base de host virtual e também posso aplicá-las globalmente ao Apache. No entanto, isso não ajuda com as configurações da CLI.

O diretório php tem uma estrutura semelhante ao Apache, permitindo que arquivos cheios de diretivas sejam ativados ou desativados com o comando phpenmod . Eu posso copiar essa estrutura, criando o diretório /etc/php/7.0/mydirectives , colocando php.ini arquivos dentro desta pasta, então criando links simbólicos de /etc/php/7.0/apache2/conf.d/ para meus arquivos diretivos php.ini. Isso me permite ter um único arquivo de diretiva que adiciona diretivas à ambas versão do Apache e CLI do PHP. A única coisa que não posso fazer com isso é o host virtual por diretivas virtuais.

Algum conselho sobre como fazer isso corretamente?

    
por Dom 15.11.2016 / 16:01

1 resposta

4

FYI, arquivos de configuração em /etc/ instalados por um pacote não são sobrescritos por padrão; na atualização, se um arquivo for alterado, um prompt será apresentado com opções .

Voltando à pergunta original, aqui está como eu faria:

  • Crie um arquivo de configuração /etc/php/7.0/mods-available/50-mydirectives.ini e faça a configuração comum lá; em seguida, use phpenmod mydirectives para ativá-lo.

  • Faça a configuração específica de apache e cli em /etc/php/7.0/apache2/conf.d/ e /etc/php/7.0/cli/conf.d/ , respectivamente.

  • Faça a configuração específica do virtualhost no próprio host virtual.

Com a configuração acima não será necessário editar o sistema fornecido php.ini .

Relacionados:

por Aaditya Bagga 26.01.2018 / 17:36