-
-
Save wcomnisky/6d276a9894a5b2078b552cc492fa1abd to your computer and use it in GitHub Desktop.
#!/bin/bash | |
brew search librabbitmq | |
brew install rabbitmq-c | |
pecl install amqp | |
# set the path to librabbitmq install prefix [autodetect] : /usr/local/Cellar/rabbitmq-c/0.10.0 | |
# if it fails follow the following (reference: https://github.com/pdezwart/php-amqp/issues/355#issuecomment-563203121): | |
git clone https://github.com/pdezwart/php-amqp.git github-pdezwart-php-amqp/ | |
cd github-pdezwart-php-amqp | |
#git checkout tags/v1.9.4 ./ | |
sudo phpize | |
./configure --with-librabbitmq-dir=/usr/local/Cellar/rabbitmq-c/0.10.0 | |
make && make install | |
# Then you just add extension=amqp to your php.ini, restart your php service | |
php -i|grep amqp |
That succeed, but make test
fails (71% tests)??
@Heavytik hard to give any help without build logs, you should paste around where it fails with error message
There is allways result "Fatal error: Uncaught AMQPConnectionException: Socket error: could not connect to host."
Maybe I am missing some configuration for tests. Build succeed, so I will try to use extension. Maybe I know more later.
There is allways result "Fatal error: Uncaught AMQPConnectionException: Socket error: could not connect to host."
Maybe I am missing some configuration for tests. Build succeed, so I will try to use extension. Maybe I know more later.
If you are running under PHP 7.4.13 then it should work. It doesn't for me on PHP 8.0
Unfortunately, I am getting an error when doing make && make install (php 8.0.3):
Dinkes-MacBook-Pro:github-pdezwart-php-amqp dinke$ make && make install
/bin/sh /Users/dinke/github-pdezwart-php-amqp/libtool --mode=compile cc -I. -I/Users/dinke/github-pdezwart-php-amqp -I/Users/dinke/github-pdezwart-php-amqp/include -I/Users/dinke/github-pdezwart-php-amqp/main -I/Users/dinke/github-pdezwart-php-amqp -I/usr/local/Cellar/php/8.0.3/include/php -I/usr/local/Cellar/php/8.0.3/include/php/main -I/usr/local/Cellar/php/8.0.3/include/php/TSRM -I/usr/local/Cellar/php/8.0.3/include/php/Zend -I/usr/local/Cellar/php/8.0.3/include/php/ext -I/usr/local/Cellar/php/8.0.3/include/php/ext/date/lib -I/usr/local/Cellar/rabbitmq-c/0.10.0//include -DHAVE_CONFIG_H -g -O2 -c /Users/dinke/github-pdezwart-php-amqp/amqp.c -o amqp.lo
mkdir .libs
cc -I. -I/Users/dinke/github-pdezwart-php-amqp -I/Users/dinke/github-pdezwart-php-amqp/include -I/Users/dinke/github-pdezwart-php-amqp/main -I/Users/dinke/github-pdezwart-php-amqp -I/usr/local/Cellar/php/8.0.3/include/php -I/usr/local/Cellar/php/8.0.3/include/php/main -I/usr/local/Cellar/php/8.0.3/include/php/TSRM -I/usr/local/Cellar/php/8.0.3/include/php/Zend -I/usr/local/Cellar/php/8.0.3/include/php/ext -I/usr/local/Cellar/php/8.0.3/include/php/ext/date/lib -I/usr/local/Cellar/rabbitmq-c/0.10.0//include -DHAVE_CONFIG_H -g -O2 -c /Users/dinke/github-pdezwart-php-amqp/amqp.c -fno-common -DPIC -o .libs/amqp.o
In file included from /Users/dinke/github-pdezwart-php-amqp/amqp.c:27:
In file included from /usr/local/Cellar/php/8.0.3/include/php/main/php.h:31:
In file included from /usr/local/Cellar/php/8.0.3/include/php/Zend/zend.h:357:
/usr/local/Cellar/php/8.0.3/include/php/Zend/zend_operators.h:541:10: error: 'asm goto' constructs are not supported yet
asm goto(
^
/usr/local/Cellar/php/8.0.3/include/php/Zend/zend_operators.h:604:10: error: 'asm goto' constructs are not supported yet
asm goto(
^
/usr/local/Cellar/php/8.0.3/include/php/Zend/zend_operators.h:674:10: error: 'asm goto' constructs are not supported yet
asm goto(
^
/usr/local/Cellar/php/8.0.3/include/php/Zend/zend_operators.h:784:10: error: 'asm goto' constructs are not supported yet
asm goto(
^
4 errors generated.
make: *** [amqp.lo] Error 1
Dinkes-MacBook-Pro:github-pdezwart-php-amqp dinke$
(also tried checking out to tags/v1.9.4, result is the same).
Hey man, try pecl install amqp-1.11.0beta
I think this issue is related to: php-amqp/php-amqp#386
With amqp not having php 8 support
Hey man, try
pecl install amqp-1.11.0beta
I think this issue is related to: php-amqp/php-amqp#386
With amqp not having php 8 support
Huge shoutout to you, works well on MacOS with PHP 8 :)
Thanks, @GuiEloiSantos your solution worked for me!
Thank you very much, it really help :)
Update to the answer. amqp 1.11.0 is stable as of 2021/12. Also brew now installs 0.11.0
. So the script is outdated.
pecl install amqp
works fine on my env (macos, arm, php 8.1).
Has to specify /opt/homebrew/Cellar/rabbitmq-c/0.11.0
during the installation. Autodetect didn't work :
Set the path to librabbitmq install prefix [autodetect] :
building in /private/tmp/pear/temp/pear-build-bahadir.birsozEbcVbL/amqp-1.11.0
// ...
ERROR: `/private/tmp/pear/temp/amqp/configure --with-php-config=/opt/homebrew/opt/php/bin/php-config --with-librabbitmq-dir' failed
Set the path to librabbitmq install prefix [autodetect] : /opt/homebrew/Cellar/rabbitmq-c/0.11.0
building in /private/tmp/pear/temp/pear-build-bahadir.birsozGWZ225/amqp-1.11.0
running: /private/tmp/pear/temp/amqp/configure --with-php-config=/opt/homebrew/opt/php/bin/php-config --with-librabbitmq-dir=/opt/homebrew/Cellar/rabbitmq-c/0.11.0
// ...
Build process completed successfully
Installing '/opt/homebrew/Cellar/php/8.1.5/pecl/20210902/amqp.so'
install ok: channel://pecl.php.net/amqp-1.11.0
Extension amqp enabled in php.ini
As people already say, pecl do not detect correctly the install folder of rabbitmq-c.
The following couple of commands worked for me:
brew install rabbitmq-c
pecl install amqp
downloading amqp-2.1.2.tgz ...
Starting to download amqp-2.1.2.tgz (118,454 bytes)
..........................done: 118,454 bytes
31 source files, building
running: phpize
Configuring for:
PHP Api Version: 20230831
Zend Module Api No: 20230831
Zend Extension Api No: 420230831
Set the path to librabbitmq install prefix [autodetect] : /opt/homebrew/Cellar/rabbitmq-c/0.14.0/
It ends well with :
Build process completed successfully
Installing '/opt/homebrew/Cellar/php/8.3.13/pecl/20230831/amqp.so'
install ok: channel://pecl.php.net/amqp-2.1.2
Extension amqp enabled in php.ini
ty I had to specify the autodetect path for it to build :)