Суть проблемы: при подключении к серверу Rabbit скрипт вываливает ошибку:
php: symbol lookup error: /usr/local/lib/php/extensions/no-debug-non-zts-20090626/amqp.so: undefined symbol: amqp_open_socket
Файл библиотеки присутствует /usr/local/lib/php/extensions/no-debug-non-zts-20090626/amqp.so. Библиотека librabbitmq в системе установлена.
Код инициирующий ошибку:
try
{
$Connection = new AMQPConnection();
$Connection->setLogin('login');
$Connection->setPassword('password');
$Connection->setVhost('host');
$Connection->setHost('localhost');
$Connection->setPort(5672);
$Connection->connect();
}
catch (\Exception $e)
{
echo 'Ошибка: ' . $e->getMessage();
}
Поиск соответствующей функции в бинарном файле библиотеки дает:
$ nm -D /usr/local/lib/php/extensions/no-debug-non-zts-20090626/amqp.so | fgrep amqp_open_socket
U amqp_open_socket
Сам Rabbit-сервер работает на порту 5672:
$ sudo netstat -anlp | grep 5672
tcp 0 0 127.0.0.1:5672 0.0.0.0:* LISTEN 16772/beam.smp
Расширение amqp (для работы с Rabbit-сервером в php) установлено через PECL:
$ php -c /usr/local/var/run/php.ini -m
[PHP Modules]
amqp
Core
ctype
curl
date
dom
ereg
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mysql
mysqlnd
pcntl
pcre
PDO
pdo_cubrid
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
shmop
SimpleXML
soap
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib
Версии ПО:
PHP 5.4.16
amqp 1.2.0
AMQP protocol version 0-9-1
librabbitmq version 0.3.0
Кто подскажет, какие могут быть варианты решения проблемы?