PHP mailparse.so错误 – 未定义的符号mbfl_convert_filter_flush

前端之家收集整理的这篇文章主要介绍了PHP mailparse.so错误 – 未定义的符号mbfl_convert_filter_flush前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
sudo pecl install mailparse以:
Build process completed successfully
Installing '/usr/lib64/PHP/5.5/modules/mailparse.so'
install ok: channel://pecl.PHP.net/mailparse-2.1.6
configuration option "PHP_ini" is not set to PHP.ini location
You should add "extension=mailparse.so" to PHP.ini

将extension = mailparse.so添加PHP.ini的Dynamic Extensions部分后,运行PHP打印出:

PHP警告:PHP启动:无法加载动态库’/usr/lib64/PHP/5.5/modules/mailparse.so’ – /usr/lib64/PHP/5.5/modules/mailparse.so:undefined symbol:mbfl_convert_filter_flush in Unknown on第0行

mailparse必须在mbstring之后加载,而mbstring由/etc/PHP-5.5.d/mbstring.ini加载,后者在PHP.ini之后读取.

仅将mailparse.ini添加PHP-5.5.d将无法正常工作,因为ini文件按字母顺序加载;虽然你可以将其命名为zz_mailparse.ini.

仅在(原文如此)PHP.ini中加载两个扩展导致:

PHP Warning:  Module 'mbstring' already loaded in Unknown on line 0
PHP Warning:  Module 'mailparse' already loaded in Unknown on line 0

那是一个谜.

证明

$echo '<?PHP echo extension_loaded("mailparse") ? "mailparse loaded\n" : "mailparse not loaded\n";' > ~/is_mailparse_loaded.PHP
$PHP ~/is_mailparse_loaded.PHP
mailparse loaded
$pwd
/etc/PHP-5.5.d
$sudo mv zz_mailparse.ini mailparse.ini
$PHP ~/is_mailparse_loaded.PHP
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/PHP/5.5/modules/mailparse.so' - /usr/lib64/PHP/5.5/modules/mailparse.so: undefined symbol: mbfl_convert_filter_flush in Unknown on line 0
mailparse not loaded
$sudo mv mailparse.ini zz_mailparse.ini
$PHP ~/is_mailparse_loaded.PHP
mailparse loaded
$

猜你在找的PHP相关文章