Изменения, внесенные в 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 при каждом запуске, нет необходимости перезагружать компьютер.