centos 6 установка mailparse

При установке биллинг-панели Joonte потребовалась функция mailparse.

Она имеется в репозитории Remi и можно поставить ее оттуда командой

yum install php-pecl-mailparse

Но при запуске установки обругалась на зависимости:

Error: Package: php-pecl-mailparse-2.1.6-2.el6.remi.x86_64 (remi)
           Requires: php(zend-abi) = 20100525-x86-64
           Installed: php-common-5.3.3-27.el6_5.x86_64 (@updates)
               php(zend-abi) = 20090626
           Available: php-common-5.3.3-26.el6.x86_64 (base)
               php(zend-abi) = 20090626
Error: Package: php-pecl-mailparse-2.1.6-2.el6.remi.x86_64 (remi)
           Requires: php(api) = 20100412-x86-64
           Installed: php-common-5.3.3-27.el6_5.x86_64 (@updates)
               php(api) = 20090626
           Available: php-common-5.3.3-26.el6.x86_64 (base)
               php(api) = 20090626

Пойдем другим путем.
Устанавливаем (или проверяем) необходимое:

yum install php-devel php-mbstring

Проверим обновления:

pecl channel-update pecl.php.net

И установим:

pecl install mailparse

Однако pecl не всегда корректно воспринимает наличие функции mbstring и можно получить ошибку

pecl/mailparse requires PHP extension "mbstring"
No valid packages found
install failed

Хотя php-mbstring мы уже установили(проверили наличие) как раз перед этим и вывод информации говорит о наличии данного модуля

php -i | grep mbstring
#/etc/php.d/mbstring.ini,
#mbstring
#mbstring extension makes use of "streamable kanji code filter and converter", which is distributed #under the GNU Lesser General Public License version 2.1.
#mbstring.detect_order => no value => no value
#mbstring.encoding_translation => Off => Off
#mbstring.func_overload => 0 => 0
#mbstring.http_input => pass => pass
#mbstring.http_output => pass => pass
#mbstring.http_output_conv_mimetypes => ^(text/|application/xhtml\+xml) => #^(text/|application/xhtml\+xml)
#mbstring.internal_encoding => no value => no value
#mbstring.language => neutral => neutral
#mbstring.strict_detection => Off => Off
#mbstring.substitute_character => no value => no value

Установим по другому

pear install pecl/mailparse

В конце появится сообщение о создании файла в /etc/php.d для подключения модуля:

extension=mailparse.so

Но чтобы не получить ошибку

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mailparse.so' -- /usr/lib64/php/modules/mailparse.so: undefined symbol: mbfl_name2no_encoding in Unknown on line 0

сделаем немного по другому.
В /etc/php.d создаем mailparse.ini с содержимым

;search in /etc/php.d/mbstring.ini

Сохраняем.
Открываем /etc/php.d/mbstring.ini и в конец файла дописываем

extension=mailparse.so

Сохраняем.
Это нужно для корректного подключения модуля — mbstring должен быть подключен раньше чем mailparse, но т.к. апач подключает модули по алфавитному списку, то mailparse был бы подключен перед mbstring, что и привело бы к ошибке (указанной выше).

Проверяем

php -i | grep mailparse
#/etc/php.d/mailparse.ini,
#mailparse
#mailparse support => enabled
#mailparse.def_charset => us-ascii => us-ascii

Профит :-)

8 комментариев

Аватар

Sirius on 19.09.2014 at 09:54.

Здравствуйте. Как ни пытаюсь установить , постоянно вылезает какая нибудь ошибка. Вот результат последней команды yum install php-pecl-mailparse.x86_64

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.bbln.org
* epel: epel.mirrors.ovh.net
* extras: mirror.bbln.org
* updates: mirror.bbln.org
Setting up Install Process
Resolving Dependencies
—> Running transaction check
—> Package php-pecl-mailparse.x86_64 0:2.1.5-2.el6 will be installed
—> Processing Dependency: php(zend-abi) = 20090626 for package: php-pecl-mailparse-2.1.5-2.el6.x86_64
—> Processing Dependency: php(api) = 20090626 for package: php-pecl-mailparse-2.1.5-2.el6.x86_64
—> Finished Dependency Resolution
Error: Package: php-pecl-mailparse-2.1.5-2.el6.x86_64 (epel)
Requires: php(api) = 20090626
Installed: php-common-5.4.31-1.el6.remi.x86_64 (@remi)
php(api) = 20100412-x86-64
Available: php-common-5.3.3-26.el6.x86_64 (base)
php(api) = 20090626
Available: php-common-5.3.3-27.el6_5.x86_64 (updates)
php(api) = 20090626
Available: php-common-5.3.3-27.el6_5.1.x86_64 (updates)
php(api) = 20090626
Error: Package: php-pecl-mailparse-2.1.5-2.el6.x86_64 (epel)
Requires: php(zend-abi) = 20090626
Installed: php-common-5.4.31-1.el6.remi.x86_64 (@remi)
php(zend-abi) = 20100525-x86-64
Available: php-common-5.3.3-26.el6.x86_64 (base)
php(zend-abi) = 20090626
Available: php-common-5.3.3-27.el6_5.x86_64 (updates)
php(zend-abi) = 20090626
Available: php-common-5.3.3-27.el6_5.1.x86_64 (updates)
php(zend-abi) = 20090626
You could try using —skip-broken to work around the problem
You could try running: rpm -Va —nofiles —nodigest

Ответить

kgtu5

kgtu5 on 19.09.2014 at 10:09.

у вас конфликтуют пакеты — весь php установлен из remi

Installed: php-common-5.4.31-1.el6.remi.x86_64 (@remi)

а php-pecl-mailparse тянет из epel

Error: Package: php-pecl-mailparse-2.1.5-2.el6.x86_64 (epel)

пробуйте

yum --disablerepo=epel install php-pecl-mailparse

Ответить

Аватар

Sirius on 19.09.2014 at 18:48.

Тоже не работает. Вот результат этой команды

yum —disablerepo=epel install php-pecl-mailparse

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.bbln.org
* extras: mirror.bbln.org
* updates: mirror.bbln.org
base | 3.7 kB 00:00
extras | 3.3 kB 00:00
nginx | 2.9 kB 00:00
updates | 3.4 kB 00:00
vesta | 2.9 kB 00:00
Setting up Install Process
No package php-pecl-mailparse available.
Error: Nothing to do

У меня на сервере установлена ЦентОС + панель Веста + сайты + ИонКуб. Какой из компонентов вызывает конфликт ?

Ответить

kgtu5

kgtu5 on 19.09.2014 at 23:45.

репозиторий Remi отключен (в списке включенных нет)

base | 3.7 kB 00:00
extras | 3.3 kB 00:00
nginx | 2.9 kB 00:00
updates | 3.4 kB 00:00
vesta | 2.9 kB 00:00

тогда так

yum --disablerepo=epel --enablerepo=remi install php-pecl-mailparse

Ответить

Аватар

Sirius on 20.09.2014 at 16:04.

Всё заработало, спасибо. Только вот вопрос — отключённый репозитарий может как нибудь повлиять на работоспособность моей связки (ЦентОС+Веста+ИонКуб+сайты), например помешать обновлению панели Веста?

Ответить

kgtu5

kgtu5 on 20.09.2014 at 23:35.

Sirius вполне, т.к. у вас часть пакетов из него, могут быть аналогичные конфликты.
Epel во многом конфликтует с Remi, Atomic, RPMForge.
Желательно выбрать какой либо один репо для себя и брать пакеты из него.
В вашем случае Remi.

Ответить

Аватар

Sirius on 21.09.2014 at 17:43.

И как быть теперь ? Может отключить репозитарий Реми и включить Епел ? На работоспособность мэйлпарс это повлияет?

yum —disablerepo=remi —enablerepo=epel

Ответить

kgtu5

kgtu5 on 21.09.2014 at 20:35.

отключить репозитарий Реми и включить Епел

зачем ?? у вас большинство пакетов из Remi, используйте его дальше, а отключить Epel, чтобы не было лишних конфликтов

yum —disablerepo=remi —enablerepo=epel

это команда единовременно отключает/подключает репозитории, отключенные в основных конфигах.
чтобы отключить/подключить постоянно идёте в /etc/repos.d/remi.repo => enable=1, в /etc/repos.d/epel.repo => enable=0

На работоспособность мэйлпарс

нет, он уже установлен и работает

Ответить

Скажите свое мнение

ваш email не публикуется. обязательно *

;-) :yawn: :whew: :toivo: :tmi: :time: :thinking: :talking: :sweating: :swear: :sun: :star: :smoke: :smirk: :sleepy: :skype: :shock: :shake: :rofl: :rain: :punch: :puke: :poolparty: :pizza: :phone: :party: :oops: :nod: :no: :ninja: :neutral: :nerd: :music: :muscle: :mrgreen: :movie: :mooning: :mmm: :middlefinger: :makeup: :mail: :mad: :lol: :lipssealed: :kiss: :itwashtme: :inlove: :idea: :hi: :heidy: :heart: :headbang: :happy: :handshake: :giggle: :fubar: :flower: :evilgrin: :emo: :dull: :drunk: :drink: :doh: :devil: :dance: :cry: :cool: :coffie: :clapping: :cash: :call: :cake: :bug: :brokenheart: :bow: :blush: :beer: :bear: :bandit: :arrow: :angry: :angel: :^) :???: :?: :-| :-o :-P :-D :-) :-( :!:

 

*

code

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.