dizelbox
@dizelbox

Не удается подключиться к RabbitMQ в PHP

Суть проблемы: при подключении к серверу 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

Кто подскажет, какие могут быть варианты решения проблемы?
  • Вопрос задан
  • 3964 просмотра
Пригласить эксперта
Ответы на вопрос 1
zarincheg
@zarincheg
У меня тоже были некоторые проблемы с RabbitMQ, решились с помощью установки вот этой библиотеки github.com/alanxz/rabbitmq-c вместо librabbitmq, которая есть в репозитории убунты. И кажется нужно заново пересобрать/переустановить расширение для пхп.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы