phpinfo.php não está mostrando pasta extra para arquivos de configuração adicionais do PHP

6

Meu phpinfo.php não está mostrando uma pasta extra para arquivos adicionais de configuração do PHP. Estou executando o Apache v2.4.4 (com PHP DSO) e PHP v5.4.14 no CentOS v6.3 de 32 bits. As instalações do Apache e do PHP são compiladas da fonte.

Eu não usei a opção de configuração '--with-config-file-scan-dir = PATH' para PHP. (E não vou usar porque vou precisar de mais de uma pasta).

Variável de ambiente PHPRC e Diretiva Apache PHPIniDir estão relacionados ao arquivo PHP principal, o que me deixa com a variável de ambiente 'PHP_INI_SCAN_DIR' para trabalhar. Abaixo estão os passos que eu fiz: -

PASSO 1 de 2 - Configurações para PHP

'PHP_INI_SCAN_DIR' sendo uma variável de ambiente do sistema operacional é necessário para ser definido antes do Apache iniciar. Então, adicionei a seguinte entrada ao meu arquivo /etc/profile.d/php.sh.

PHP_INI_SCAN_DIR="/usr/local/lib/php/custom"
export PHP_INI_SCAN_DIR

Em seguida, reinicie o sistema.

Agora os comandos 'env | grep PHP ',' php -i | grep INI 'e' php --ini 'me fornecem as seguintes saídas.

= > # env | grep PHP

PHP_INI_SCAN_DIR=/usr/local/lib/php/custom

= > # php -i | grep INI

PHP_INI_SCAN_DIR => /usr/local/lib/php/custom
_SERVER["PHP_INI_SCAN_DIR"] => /usr/local/lib/php/custom

= > # php --ini

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         /usr/local/lib/php.ini
Scan for additional .ini files in: /usr/local/lib/php/custom
Additional .ini files parsed:      (none)

PASSO 2 de 2 - Configurações para o Apache

Primeira tentativa

===================

Adicionada a seguinte entrada em ambos apache2 / bin / envvars & arquivos apache2 / bin / envvars-std.

( Algum comentário sobre qual é a diferença entre o arquivo envvars & ampv; envvars-std? )

PHP_INI_SCAN_DIR="/usr/local/lib/php/custom"
export PHP_INI_SCAN_DIR

Serviço Apache reiniciado. Mas o valor para 'Verificar este diretório para arquivos .ini adicionais' do arquivo phpinfo.php mostra vazio.

Segunda tentativa

===================

Por isso, removi as entradas do envvars & envvars-std. Eu tenho módulo mod_env carregado por padrão. Eu adicionei o seguinte no httpd.conf.

SetEnv PHP_INI_SCAN_DIR "/usr/local/lib/php/custom"

Serviço Apache reiniciado. O valor para 'Verificar este diretório para arquivos .ini adicionais' do arquivo phpinfo.php ainda está vazio.

Terceira tentativa

===================

Mais uma vez, removi as entradas do httpd.conf. Adicionada a mesma linha à seção Directory do meu VirtualHost em httpd-vhosts.conf.

SetEnv PHP_INI_SCAN_DIR "/usr/local/lib/php/custom"

Serviço Apache reiniciado. O valor para 'Verificar este diretório para arquivos .ini adicionais' do arquivo phpinfo.php ainda está vazio.

RESPONDA SOBRE ALGUNS DOS SEUS PENSAMENTOS:

  • Sim, meu arquivo phpinfo.php é feito apenas de phpinfo (). Não é um arquivo estático.

  • Sim, o cache do navegador foi limpo. Eu também tentei outro navegador.

Finalmente

Então, alguém pode me dizer por que meu arquivo phpinfo não está mostrando a pasta extra para arquivos adicionais de configuração do PHP?

Obrigado antecipadamente.

    
por Arun GP 07.06.2013 / 17:02

1 resposta

1

Você precisa iniciar o apache com esse conjunto de variáveis de ambiente. Definir a variável em /etc/profile.d/php.sh apenas a define para o próprio executável PHP, que não é usado por mod_php5.

Acabei de passar por este rigamarole. Definir a variável com SetEnv não funcionará, como é definido depois que o mod_php5 é carregado.

No CentOS 6.5, descobri que editar /etc/sysconfig/httpd permite que você defina e exporte variáveis de ambiente adicionais para o próprio processo do apache. Então, tente adicioná-lo lá:

export PHP_INI_SCAN_DIR="/usr/local/lib/php/custom"

    
por 20.04.2016 / 18:20