пятница, 11 февраля 2011 г.

ejabberd 2.1.6 + ALTLinux server 4

Стоял ejabberd 2.0.5 c 64 пользователями, работал без нареканий очень долго, но в последнюю неделю стал часто падать. Было принято решение обновить версию на 2.1.6.
Делаю через web интерфейс резервные копии баз:

http://192.168.0.1:5280/admin/node/ejabberd@localhost/backup//

Останавливаю ejabberd, удаляю его и устанавливаю новый из пакета взятого с офф. сайта.



Через web интерфейс восстанавливаю базы из резервой копии.

Все, вроде бы замечательно, базы перенеслись, через web интерфейс админки все работает, но из клиента можно подключиться только без шифрования соединения. Что за черт?!

Убил много времени, пока не выяснил следующее:

# /var/ejabberd-2.1.6/bin/ejabberdctl live
--------------------------------------------------------------------

IMPORTANT: ejabberd is going to start in LIVE (interactive) mode.
All log messages will be shown in the command shell.
You can interact with the ejabberd node if you know how to use it.
Please be extremely cautious with your actions,
and exit immediately if you are not completely sure.

To exit this LIVE mode and stop ejabberd, press:
q().  and press the Enter key

--------------------------------------------------------------------
Press any key to continue


Erlang (BEAM) emulator version 5.6.4 [source] [async-threads:0] [kernel-poll:true]

Eshell V5.6.4  (abort with ^G)
(ejabberd@localhost)1> 
=ERROR REPORT==== 11-Feb-2011::10:14:01 ===
C(<0.41.0>:sha:53) : unable to load driver '/var/ejabberd-2.1.6/lib/ejabberd-2.1.6/priv/linux-x86/lib/sha_drv.so': libssl.so.0.9.8: cannot open shared object file: No such file or directory

Что такое?! Файл sha_drv.so существует и права доступа нормальные!

Делаю:

# ldd /var/ejabberd-2.1.6/lib/ejabberd-2.1.6/priv/linux-x86/lib/sha_drv.so
libssl.so.0.9.8 => not found
libcrypto.so.0.9.8 => not found
libc.so.6 => /lib/libc.so.6 (0x00d2f000)
/lib/ld-linux.so.2 (0x006cc000)

Ага! Вот она причина!
Хотя в /lib/libssl.so.0.9.8d и /lib/libcrypto.so.0.9.8d есть!
Делаю symlink:
# ln -s /lib/libssl.so.0.9.8d /lib/libssl.so.0.9.8
# ln -s /lib/libcrypto.so.0.9.8d /lib/libcrypto.so.0.9.8

Запускаю ejabberd и все работает! Пользователи стали подключаться!

Комментариев нет:

Отправить комментарий