Изменения, внесенные в php.ini Cli, не вступают в силу

У меня два php.ini файлы -

  • /etc/php.ini который загружается в случае кли
  • /opt/lampp/etc/php.ini который загружается в случае браузера.

Я могу использовать расширение PHP Mailparse после добавления строки extension=mailparse.so в /opt/lampp/etc/php.ini и перезапуск фонаря.

Но я не могу загрузить то же самое в случае командной строки -

получение PHP Fatal error: Call to undefined function mailparse_msg_create() in ...

mailparse_msg_create() является частью Mailparse расширение.

Я попытался войти с пользователем после внесения изменений и даже перезапустить систему. Что нужно сделать, чтобы изменения вступили в силу.

Обновить

Я проверил это 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

Обновление 2
Я скопировал mailparse.so из /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626 и положить его в /usr/lib/php/modules, я добавил extension=mailparse.so в /etc/php.ini также. Но это все еще показало это предупреждение

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

Как сказал Лекенштейн, я сделал

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

и получил

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

Поэтому я дал разрешение на выполнение. затем

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

показал

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

который выглядит нормально. Но сейчас работает php команда говорит

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

2 ответа

Решение

Вы установили расширение в том месте, где ожидается версия PHP для командной строки?

Проверьте extension_dir в вашем /etc/php.ini, чтобы увидеть, где он ожидает найти расширения и установить расширение или указать его в своем каталоге расширений PHP lampp (при условии, что это совместимая версия PHP).

Оба php.ini содержат разные extension_dir установка, /etc/php.ini кажется, установить его /usr/lib/php/modules и LAMPP устанавливает его /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626,

Чтобы заставить Mailparse работать для LAMPP, вам нужно скопировать mailparse.so в /opt/lampp/lib/php/extensions/no-debug-non-zts-20090626 и добавить extension=mailparse.so в /opt/lampp/etc/php.ini также. Поскольку PHP загружает файл php.ini при каждом запуске, нет необходимости перезагружать компьютер.

Другие вопросы по тегам