Alterações feitas no php.ini da cli não entrando em vigor

2

Eu tenho dois arquivos php.ini -

  • /etc/php.ini que carrega no caso de cli
  • /opt/lampp/etc/php.ini , que é carregado no navegador.

Eu posso usar a extensão Mailparse do PHP depois de adicionar a linha extension=mailparse.so no /opt/lampp/etc/php.ini e reiniciando o lampp.

Mas não consigo carregar o mesmo em caso de linha de comando -

recebendo PHP Fatal error: Call to undefined function mailparse_msg_create() in ...

mailparse_msg_create () é uma parte da extensão Mailparse .

Eu tentei relogar com o usuário depois de fazer a alteração e até mesmo reiniciar o sistema. O que precisa ser feito para que a mudança entre em vigor.

Atualizar

Eu verifiquei que php -i | grep 'Configuration File'

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/mailparse.so' - /usr/lib/php/modules/mailparse.so: cannot open shared object file: No such file or directory in Unknown on line 0
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini

Atualização 2
Eu copiei o mailparse.so de /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626 e coloquei em /usr/lib/php/modules . Também adicionei extension=mailparse.so a /etc/php.ini . Mas ainda mostrou esse aviso

PHP Warning:  PHP Startup: Unable to load dynamic library ...  

Como contado por Lekensteyn, eu fiz

ldd /usr/lib/php/modules/mailparse.so

e obtivemos

ldd: warning: you do not have execution permission for /usr/lib/php/modules/mailparse.so'

Então eu dei permissão de execução. Então

ldd /usr/lib/php/modules/mailparse.so

mostrou

linux-gate.so.1 => (0x00110000) libc.so.6 => /lib/libc.so.6 (0x0011d000) /lib/ld-linux.so.2 (0x003aa000)

que parece normal. Agora, executando o comando php diz

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/mailparse.so' - /usr/lib/php/modules/mailparse.so: undefined symbol: mbfl_name2no_encoding in Unknown on line 0
    
por Sandeepan Nath 31.01.2011 / 13:49

2 respostas

1

Você instalou a extensão onde sua versão de linha de comando do PHP espera que seja?

Verifique o extension_dir em seu /etc/php.ini para ver onde ele espera encontrar as extensões e instale a extensão lá ou aponte para o diretório de extensões do PHP (supondo que seja uma versão compatível do PHP).

    
por 31.01.2011 / 14:00
1

Os dois php.ini's contêm uma configuração extension_dir diferente, /etc/php.ini parece configurá-lo como /usr/lib/php/modules e o LAMPP o define como /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626 .

Para fazer o Mailparse funcionar no LAMPP, você precisa copiar mailparse.so para /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626 e também adicionar extension=mailparse.so a /opt/lampp/etc/php.ini . Como o PHP carrega o arquivo php.ini toda vez que é executado, não há necessidade de reiniciar o computador.

    
por 31.01.2011 / 14:05