2010-09-08 2 views
0

При запуске приведенного ниже кода появляется следующая ошибка. Я устанавливаю расширение AMQP через PECL, и он отлично отображается в моем файле php.ini, когда я делаю phpinfo как из командной строки, так и из браузера.Невозможно установить AMQP для PHP - Ошибка Symbol не найдена

<?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 
+0

Что такое вывод 'ldd/opt/local/lib/php/extensions/no-debug-non-zts-20090626/amqp.so'? – Mike

ответ

1

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

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