Невозможно установить AMQP для PHP - символ не найден - PullRequest
0 голосов
/ 09 сентября 2010

Я получаю следующую ошибку при запуске кода, указанного ниже.Я установил расширение AMQP через PECL, и оно хорошо отображается в моем файле php.ini, когда я выполняю phpinfo как из командной строки, так и из браузера.

    <?php
    // amqp rabbitmq client test


    // Create a connection
    $cnn = new AMQPConnection();
    exit();
?>

При попытке запустить этот код я получаю эту ошибку:

dyld: lazy symbol binding failed: Symbol not found: _amqp_new_connection
  Referenced from: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/amqp.so
  Expected in: flat namespace

dyld: Symbol not found: _amqp_new_connection
  Referenced from: /opt/local/lib/php/extensions/no-debug-non-zts-20090626/amqp.so
  Expected in: flat namespace

Ниже приведены инструкции по установке:

Download rabbitmq-c lib from: http://hg.rabbitmq.com/rabbitmq-c/ (.zip file)

Download codegen http://hg.rabbitmq.com/rabbitmq-codegen/summary (.zip file)


unzip rabbitmq-c

unzip codegen and put it into the rabbitmq-c lib and rename it codegen

cd into rabbitmq-c dir

autoreconf -i && ./configure && make && sudo make install


#install the amqp extension
sudo pecl install -f amqp

1 Ответ

1 голос
/ 31 января 2011

убедитесь, что librabbitmq скомпилирован как 32-битный (если php 32-битный).Это мне помогло.

Для компиляции в 32-битной версии используйте ./configure CFLAGS = "- m32" при компиляции librabbitmq и расширения pecl amqp.

...