PECL

2012-03-01 24 views
17

के माध्यम से AMQP स्थापित कर रहा है मैं RabbitMQ PECL extension स्थापित करने के लिए कोशिश कर रहा हूँ, लेकिन चलPECL

sudo pecl install amqp 

मैं निम्नलिखित छुपे त्रुटि संदेश है, जो व्यापक Googling संकल्प नहीं मदद की है के बाद।

मैं इन पैकेजों स्थापित:

  • librabbitmq - RabbitMQ सी ग्राहक ही)
  • librabbitmq-देव - देव हेडर आदि

और RabbitMQ स्थानीय होस्ट पर सफलतापूर्वक चल रहा

शायद यह सी ग्राहक के संस्करण में एक बेमेल और क्या PECL विस्तार की उम्मीद है, किसी और इस एक के पार चलो हो सकता है?

मेक नीचे उत्पादन ....

चीयर्स

running: make 
/bin/bash /tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/libtool --mode=compile cc -I.   -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-  1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main -I/tmp/pear/temp/amqp -  I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -  I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/amqp/amqp.c -o amqp.lo 
libtool: compile: cc -I. -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear- build-rootZNUmac/amqp-1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main - I/tmp/pear/temp/amqp -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM - I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/amqp/amqp.c -fPIC -DPIC -o .libs/amqp.o 
/bin/bash /tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/libtool --mode=compile cc -I. -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootZNUmac/amqp- 1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main -I/tmp/pear/temp/amqp - I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM - I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c  /tmp/pear/temp/amqp/amqp_exchange.c -o amqp_exchange.lo 
libtool: compile: cc -I. -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear- build-rootZNUmac/amqp-1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main - I/tmp/pear/temp/amqp -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM - I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/amqp/amqp_exchange.c -fPIC -DPIC -o .libs/amqp_exchange.o 
/bin/bash /tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/libtool --mode=compile cc -I. -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootZNUmac/amqp- 1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main -I/tmp/pear/temp/amqp - I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM - I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/amqp/amqp_queue.c -o amqp_queue.lo 
libtool: compile: cc -I. -I/tmp/pear/temp/amqp -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/include -I/tmp/pear/temp/pear-build-rootZNUmac/amqp-1.0.0/main - I/tmp/pear/temp/amqp -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM - I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -g -O2 -c   /tmp/pear/temp/amqp/amqp_queue.c -fPIC -DPIC -o .libs/amqp_queue.o 
/tmp/pear/temp/amqp/amqp_queue.c: In function 'read_message_from_channel': 
/tmp/pear/temp/amqp/amqp_queue.c:316:11: error: 'AMQP_FIELD_KIND_U64' undeclared (first use in this function) 
/tmp/pear/temp/amqp/amqp_queue.c:316:11: note: each undeclared identifier is reported only once for each function it appears in 
/tmp/pear/temp/amqp/amqp_queue.c: In function 'zim_amqp_queue_class_nack': 
/tmp/pear/temp/amqp/amqp_queue.c:1020:2: error: unknown type name 'amqp_basic_nack_t' 
/tmp/pear/temp/amqp/amqp_queue.c:1039:3: error: request for member 'delivery_tag' in something not a structure or union 
/tmp/pear/temp/amqp/amqp_queue.c:1040:3: error: request for member 'multiple' in something not a structure or union 
/tmp/pear/temp/amqp/amqp_queue.c:1041:3: error: request for member 'requeue' in something not a structure or union 
/tmp/pear/temp/amqp/amqp_queue.c:1046:3: error: 'AMQP_BASIC_NACK_METHOD' undeclared  (first use in this function) 
make: *** [amqp_queue.lo] Error 1 
ERROR: `make' failed 
+0

मैं भी इस अनुभव किया है से डाउनलोड किया जा सकता है। उबंटू ल्यूसिड सिस्टम पर, मैंने उबंटू रिपोजिटरीज से खरगोश-सर्वर खींच लिया, और ड्राईज़ल पीपीए से librabbitmq-dev। फिर उपरोक्त त्रुटि संदेश में 'pecl इंस्टॉल amqp-beta' परिणाम कर रहे हैं। वही सटीक संदेश 'pecl इंस्टॉल amqp' से भी परिणाम देता है। – Mei

+0

या केवल PHP का उपयोग करें https://github.com/php-amqplib/php-amqplib लाइब्रेरी – kervin

उत्तर

3

यह PECL एक्सटेंशन की तरह लग रहा पुस्तकालयों है कि आप स्थापित हो गया है से अधिक नया। अपनी वेबसाइट से सीधे RabbitMQ स्थापित करें, अपने पैकेजों और नहीं जो कि आपके वितरण के साथ आ गए हैं के रूप में वे पुराने हो चुके हो रहा है का उपयोग कर। रेपो से

+0

हाँ, खरगोश एमक्यू सी लाइब्रेरी को देखने के बाद वे इसे प्रयोगात्मक बनाते हैं और एक संस्करण ढूंढते हैं जो पीईसीएल एक्सटेंशन संकलित करेगा के खिलाफ हिट और मिस इसके बजाय मैं सिर्फ एक शुद्ध PHP कार्यान्वयन के साथ जा रहा हूं [php-amqplib] (https://github.com/videlalvaro/php-amqplib) चीयर्स – managedheap84

2

देव lib टूट गया है (आमतौर पर के रूप में ....)। आप (GIT या एचजी से) क्लोन और lib बनाने, php.net से करने के लिए है:

hg clone http://hg.rabbitmq.com/rabbitmq-c/rev/b01825ecc112 rabbitmq-c 
cd rabbitmq-c 
# Add the codegen requirement. To find the full list, go here: http://hg.rabbitmq.com/rabbitmq-codegen/tags 
# and copy the URL for the appropriate broker version. 
hg clone http://hg.rabbitmq.com/rabbitmq-codegen/rev/16bbcb711380 codegen 
# Configure, compile and install 
autoreconf -i && ./configure && make && sudo make install 

फिर चलाने "PECL AMQP स्थापित", Php 5.3

+0

यह मेरे लिए 32 बिट 12.04 पर भी काम करता है PHP 5.3। हालांकि 13.04 64 बिट PHP 5.4 पर पीईसीएल एक्सटेंशन संकलित करता है लेकिन इसे अपाचे में लोड करने से निम्नलिखित त्रुटि मिलती है: "PHP चेतावनी: PHP स्टार्टअप: गतिशील लाइब्रेरी लोड करने में असमर्थ '/usr/lib/php5/20100525/amqp.so' -/usr/lib/php5/20100525/amqp.so: अपरिभाषित प्रतीक: amqp_open_socket अज्ञात में पंक्ति 0 पर। " क्या आप इसे काम करने में कामयाब रहे हैं? कोई विचार? – nicja

23

मैं करना पड़ा के साथ मेरी ubuntu 12 में काम किया स्थापित इसे लागू करने के लिए निम्न चरणों here पाया:

# Download the rabbitmq-c library @ version 0-9-1 
git clone git://github.com/alanxz/rabbitmq-c.git 
cd rabbitmq-c 
# Enable and update the codegen git submodule 
git submodule init 
git submodule update 
# Configure, compile and install 
autoreconf -i && ./configure && make && sudo make install 

उसके बाद, sudo pecl install amqp काम किया है।

पीएचपी 5.4.3 के साथ उबंटू 12.10 का उपयोग करना।

+0

उबंटू 14.04 और PHP 5.6 जैसे नए रिलीज संस्करणों पर, आपको rabbitmq-c repository.pph –

2

ऐसा इसलिए है क्योंकि आपका rabbitmq php एक्सटेंशन की आवश्यकता वाले संस्करण से पुराना है।

आप या RabbitMQ के नए संस्करण की तरह विस्तार के निचले संस्करण को स्थापित कर सकते हैं:

pecl install amqp-1.2.0 

लेकिन मुझे लगता है कि नवीनतम संस्करण का उपयोग कर बेहतर विकल्प है।

+1

पर नवीनतम टैग को चेकआउट करने की आवश्यकता है! यह वर्ड है लेकिन केवल 1.6.बेटा संस्करण मेरे लिए काम करता है उबंटू 14/PHP 5.6 –

3
इस

क्या मैं डेबियन खरखरा पर सफलतापूर्वक इसे स्थापित करने किया था:

apt-get install pkg-config librabbitmq-dev librabbitmq0 

git clone https://github.com/alanxz/rabbitmq-c 
cd rabbitmq-c/ 
autoreconf -i 
./configure 
make 
make install 
pecl install amqp 
+0

यह मेरे लिए काम करता है जब अन्य सभी समाधान विफल हो जाते हैं (संकलन त्रुटियां बड़ी होती हैं)। धन्यवाद! –

3

यह है कि मैं क्या डेबियन खरखरा पर सफलतापूर्वक इसे स्थापित करने किया था: मैं RabbitMQ-सी

के संस्करण 0.5.2 का इस्तेमाल करना पड़ा
git clone https://github.com/alanxz/rabbitmq-c 
cd rabbitmq-c 
git checkout tags/v0.5.2 
git submodule init 
git submodule update 
autoreconf -i && ./configure && make && make install 
pecl install amqp 
1

PHP7 के साथ pecl के साथ rabbitmq के AMQP को स्थापित करना।0

बस इन चरणों का पालन करें, यह इसकी सभी निर्भरताओं और amqp लाइब्रेरी को स्थापित करेगा। यह php7.0

apt-get update 

wget http://in.archive.ubuntu.com/ubuntu/ubuntu/pool/universe/libr/librabbitmq/librabbitmq1_0.5.2-2_amd64.deb 
dpkg -i librabbitmq1_0.5.2-2_amd64.deb 

wget http://in.archive.ubuntu.com/ubuntu/ubuntu/pool/universe/libr/librabbitmq/librabbitmq-dev_0.5.2-2_amd64.deb 
dpkg -i librabbitmq-dev_0.5.2-2_amd64.deb 

apt-get install php7.0 php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-xml php7.0-dev 

pecl install amqp 

echo "extension=amqp.so" >> /etc/php/7.0/cli/php.ini 
echo "extension=amqp.so" >> /etc/php/7.0/fpm/php.ini 

Librabbitmq-dev साथ bento/ubuntu-16.04 साथ मेरे लिए काम करता है और विभिन्न संस्करणों की अपनी निर्भरता यह

http://in.archive.ubuntu.com/ubuntu/ubuntu/pool/universe/libr/librabbitmq/