标签:

看到网上大部分都是需要先安装很多下载工具,感觉麻烦,我mac 上一直都仅用homebrew 管理和安装第三方的。这里分享一下步骤:

安装rabbitmq 方式: brew  install rabbitmq

安装成功后可以先启动前台任务:rabbitmq-server ,不要关闭该终端窗口

可以使用浏览器登录rabbitmq 查看:http://localhost:15672  这里一定是localhost 不要用127.0.0.1,账号密码都是guest

以上说明安装rabbitmq 成功,下面开始安装php扩展

php中的rabbitmq 扩展是amqp ,而amqp依赖于rabbitmq-c ,首先需要安装rabbitmq-c

brew install rabbitmq-c

安装成功后,进入php 的安装目录中的bin 文件夹使用pecl 安装amqp:

curl 'http://pecl.php.net/get/amqp-1.9.3.tgz' -o amqp-1.9.3.tgz

sudo ./pecl install amqp-1.9.3.tgz

直至出现Set the path to librabbitmq install prefix [autodetect]

使用brew install rabbitmq-c 查询这个path,然后paste到终端。然后回车,这时候啥也不用做,知道其提示成功。

重启php-fpm

打开pathinfo(); 搜索amqp 可以看到已经有这个可扩展了。

注意:1、如果rabbitmq-server 提示命令不存在,那么需要将该安装文件下的bin目录放到~/.bash_profile 里

2、因为mac中本身带的有个php版本,如果自己再安装可能存在多个php版本,注意扩展安装对应的版本

3、扩展安装成功后,可以看到在php.ini里已经有extension=amqp.so 了,如果没有,自己添加一下

4、如果pathinfo()里没有,注意刷新,或者检查刚才哪一步是否有安装错误。如果没有,你的php是否重启,或当前版本是否对应?检查一下。

测试代码:

生产者:

//配置信息

$conn_args = array(

'host' => '127.0.0.1',

'port' => '5672',

'login' => 'guest',

'password' => 'guest',

'vhost'=>'/'

);

$e_name = 'e_meng'; //交换机名

//$q_name = 'q_meng'; //无需队列名

$k_route = 'key_meng'; //路由key

//创建连接和channel

$conn = new AMQPConnection($conn_args);

if (!$conn->connect()) {

die("Cannot connect to the broker!\n");

}

$channel = new AMQPChannel($conn);

//创建交换机对象

$ex = new AMQPExchange($channel);

$ex->setName($e_name);

date_default_timezone_set("Asia/Shanghai");

//发送消息

//$channel->startTransaction(); //开始事务

for($i=0; $i<5; ++$i){

sleep(1);//休眠1秒

//消息内容

$message = "TEST MESSAGE!".date("h:i:sa");

echo "Send Message:".$ex->publish($message, $k_route)."\n";

}

//$channel->commitTransaction(); //提交事务

$conn->disconnect();

消费者:

//配置信息

$conn_args = array(

'host' => '127.0.0.1',

'port' => '5672',

'login' => 'guest',

'password' => 'guest',

'vhost'=>'/'

);

$e_name = 'e_meng'; //交换机名

$q_name = 'q_meng'; //队列名

$k_route = 'key_meng'; //路由key

//创建连接和channel

$conn = new AMQPConnection($conn_args);

if (!$conn->connect()) {

die("Cannot connect to the broker!\n");

}

$channel = new AMQPChannel($conn);

//创建交换机

$ex = new AMQPExchange($channel);

$ex->setName($e_name);

$ex->setType(AMQP_EX_TYPE_DIRECT); //direct类型

$ex->setFlags(AMQP_DURABLE); //持久化

echo "Exchange Status:".$ex->declareExchange()."\n";

//创建队列

$q = new AMQPQueue($channel);

$q->setName($q_name);

$q->setFlags(AMQP_DURABLE); //持久化

echo "Message Total:".$q->declareQueue()."\n";

//绑定交换机与队列,并指定路由键

echo 'Queue Bind: '.$q->bind($e_name, $k_route)."\n";

//阻塞模式接收消息

echo "Message:\n";

while(True){

$q->consume('processMessage');

//$q->consume('processMessage', AMQP_AUTOACK); //自动ACK应答

}

$conn->disconnect();

/**

* 消费回调函数

* 处理消息

*/

function processMessage($envelope, $queue) {

$msg = $envelope->getBody();

echo $msg."\n"; //处理消息

$queue->ack($envelope->getDeliveryTag()); //手动发送ACK应答

}

测试代码可以分两部分,注意打开rabbitmq进程,然后运行消费者代码和生产者代码,可以看到当有消息进入队列,消费者会将消息不断打印出来,可以更好理解的使用消息队列的解耦、消峰等优点。实际项目中可以参考测试代码进一步封装处理。

标签:

来源: https://blog.csdn.net/mengguihua110/article/details/83015941

mac rabbitmq php安装,mac 下安装rabbitmq 和配置php扩展相关推荐

  1. opencv python安装 centos_centos下安装opencv

    根据项目需要,安装opencv并提供给开发使用,并且使用opencv提供python3的API接口.虽然不知道是个啥,还是简单了解下. opencv是什么? OpenCV的全称是Open Source ...

  2. Rabbitmq学习笔记007---Centos7下安装rabbitmq_测试通过

    JAVA技术交流QQ群:170933152 1.在Centos下安装rabbitmq,之前都是在windows中安装的,centos下安装还挺麻烦 这里介绍两种安装方法: 第一种,我测试了,太慢了,不 ...

  3. RabbitMQ在windows10环境下安装步骤

    下载并安装Erlang RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang. Erlang官网下载地址:http://www.erlang.o ...

  4. mac笔记本安装mysql_mac下安装MySQL完整步骤(图文详情)

    原文摘自:http://www.jb51.net/article/103841.htm 最近使用Mac系统,准备搭建一套本地web服务器环境.因为Mac系统自带PHP和apach,但是没有自带mysq ...

  5. RabbitMQ消息队列-Centos7下安装RabbitMQ3.6.1

    如果你看过前两章对RabbitMQ已经有了一定了解,现在已经摩拳擦掌,来吧动手吧! 用什么系统 本文使用的是Centos7,为了保证对linux不太熟悉的伙伴也能轻松上手(避免折在安装的路上),下面是 ...

  6. 利用python安装opencv_Linux下安装OpenCV+Python支持

    原博文 2016-08-22 09:42 − 以下说明在Linux下Python和OpenCV结合安装的过程,Python要使用OpenCV模块,则必须导入OpenCV提供的包,所以要提供Python ...

  7. Python安装(Windows下安装/Linux下安装)

    1.准备工作 1.1.运行环境 课程中:Windows下的运行环境 1.2.Python是什么 (1)Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1 ...

  8. freerdp 解压安装_Linux下安装FreeRDP,连接Windows远程桌面好软件软件.doc

    Linux下安装FreeRDP,连接Windows远程桌面好软件软件 Linux下安装FreeRDP,连接Windows远程桌面的好软件软件 偶尔也玩一下Linux,发现Linux下没有类似微软远程桌 ...

  9. ubuntu 在线安装mysql_Ubuntu下安装MySQL5.6

    我想我们不应该在安装软件上面耽误太多时间,但是很多时候,我们去被安装挡在了门外,尤其是初次在Linux下.作为一个程序猿,最近决定转战linux,MySQL是必须要有的,讲一下我的安装过程.在Ubun ...

  10. linux mysql5.7.11安装_Linux下安装MySQL 5.7.11

    拷贝mysql5.7安装包 bash-4.1# cp /mnt/hgfs/Downloads/mysql-5.7.11-1.el6.x86_64.rpm-bundle.tar /home 解压安装包 ...

最新文章

  1. 装饰器模式(Decorator)
  2. centos7 mysql 5.6.38_centos7.4 安装mysql 5.6.38
  3. 使用反射将DataTable的数据转成实体类
  4. 程序员过关斩将--快速迁移10亿级数据
  5. JDBC连接池和DBUtils
  6. CHIP-seq流程学习笔记(11)-使用GSEA软件进行GSEA分析
  7. random.sample函数
  8. SymPy学习之Plotting Module
  9. panic: reflect: reflect.Value.SetString using value obtained using unexported field
  10. Android debug时一直处于waiting for debugger解决办法
  11. php rsa 跨平台问题,为啥 rsa 这种算法扩展 php/python 不自带。而且跨平台也不是处理的很好...
  12. 编辑器将光标横线变成竖线
  13. USB描述符(附加USB HID报告描述符 )
  14. DeepHPV:一个用于预测HPV整合人类基因位点的深度学习模型
  15. ZLMediaKit源码分析 - NotifyCenter
  16. 软件工程-人事管理系统项目(一)
  17. SNMP Private Enterprise Number 申请流程
  18. React Native专题-江
  19. 2022-2028全球激光清洗设备行业调研及趋势分析报告
  20. 无损连接和模式分解题型

热门文章

  1. 就算神游 之四:富士山和富士游乐园 2
  2. 基于SpringBoot+vue的校园闲置物品交易网站设计与实现
  3. 使用Arduino开发板和3D打印制作机械臂
  4. ubuntu 下3080Ti 环境配置记录
  5. 307 跳转会携带请求方法吗_蓟马什么时间防治,有哪些方法?蓟马图片
  6. 作为一名程序员不要假装很努力,因为结果不会陪你演戏
  7. tensorflow打印graph
  8. python爬取智联招聘职位信息(多进程)
  9. Kaggle房价预测:数据探索——练习
  10. C++【10】构造函数、析构函数何时被调用?