php cli arquivos adicionais .ini não carregados

4

Eu compilei o PHP 5.3 e tudo parece estar funcionando corretamente, exceto ao executar o PHP a partir da linha de comando.

Quando eu corro:

# php --ini

produz esta saída:

Configuration File (php.ini) Path: /etc/php5/apache2
Loaded Configuration File:         /etc/php5/apache2/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

Quando eu crio uma página e imprimo phpinfo (); Eu recebo esta saída:

Configuration File (php.ini) Path: /etc/php5/apache2
Loaded Configuration File:         /etc/php5/apache2/php.ini
Scan for additional .ini files in: /etc/php5/apache2/conf.d
Additional .ini files parsed:      /etc/php5/apache2/conf.d/curl.ini, /etc/php5/apache2/conf.d/gd.ini, /etc/php5/apache2/conf.d/imagick.ini, /etc/php5/apache2/conf.d/memcache.ini, /etc/php5/apache2/conf.d/mhash.ini, /etc/php5/apache2/conf.d/ming.ini, /etc/php5/apache2/conf.d/mysql.ini, /etc/php5/apache2/conf.d/mysqli.ini, /etc/php5/apache2/conf.d/pdo.ini, /etc/php5/apache2/conf.d/pdo_mysql.ini, /etc/php5/apache2/conf.d/pdo_sqlite.ini, /etc/php5/apache2/conf.d/pspell.ini, /etc/php5/apache2/conf.d/recode.ini, /etc/php5/apache2/conf.d/snmp.ini, /etc/php5/apache2/conf.d/sqlite.ini, /etc/php5/apache2/conf.d/tidy.ini, /etc/php5/apache2/conf.d/xmlrpc.ini, /etc/php5/apache2/conf.d/xsl.ini 

Não consigo descobrir por que os arquivos .ini adicionais são carregados quando o php é executado via apache e não quando o CLI é usado. Alguém tem alguma ideia?

Aqui está a configuração simplificada que usei para compilar o PHP:

'./configure' \
'--prefix=/usr' \
'--with-config-file-path=/etc/php5/apache2' \
'--with-config-file-scan-dir=/etc/php5/apache2/conf.d'

Eu preciso que o driver PDO mysql seja carregado para algo que estou executando na linha de comando e acredito que essa seja a raiz do problema.

Todas as sugestões serão gentilmente recebidas.

    
por Steve Todd 23.07.2009 / 20:48

3 respostas

1

O problema não era que o php não estava incluindo os arquivos .ini adicionais no final.

Eu recompilei o php e notei que o comando 'make install' não foi concluído. O erro produzido foi:

apxs:Error: Activation failed for custom /etc/apache2/httpd.conf file..
apxs:Error: At least one 'LoadModule' directive already has to exist..

Como o Apache vem com o apache2.conf, que inclui as diretivas do módulo e o httpd.conf, o httpd.conf está, de fato, vazio.

Adicionando simplesmente:

# Dummy LoadModule directive to aid module installations
# LoadModule dummy_module /usr/lib/apache2/modules/mod_dummy.so

para o httpd.conf permite que as apxs sejam executadas sem erros e a instalação completa do php seja concluída com sucesso.

Os drivers do PDO estavam então disponíveis no CLI, bem como via Apache.

Como radius sugeriu, em essência, eu não estava usando um bom binário. Obrigado pela sua ajuda.

    
por 27.07.2009 / 20:46
2

Eu não sei porque config-file-scan-dir não é usado quando o php é executado em cli (você tem certeza que o binário que você carrega é o bom? Quero dizer o que você reconstruir). Mas você pode usar php -c /etc/php5/apache2/conf.d ou definir PHP_INI_SCAN_DIR como /etc/php5/apache2/conf.d como uma solução alternativa.

    
por 23.07.2009 / 21:04
1

Eu tive o mesmo problema. Simplesmente verifique o dono e as permissões para cada arquivo em /etc/php5/conf.d/. Ele precisa ser de propriedade de root e legível por qualquer outro usuário.

    
por 10.12.2010 / 23:22