mac rabbitmq php安装,mac 下安装rabbitmq 和配置php扩展
标签:
看到网上大部分都是需要先安装很多下载工具,感觉麻烦,我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扩展相关推荐
- opencv python安装 centos_centos下安装opencv
根据项目需要,安装opencv并提供给开发使用,并且使用opencv提供python3的API接口.虽然不知道是个啥,还是简单了解下. opencv是什么? OpenCV的全称是Open Source ...
- Rabbitmq学习笔记007---Centos7下安装rabbitmq_测试通过
JAVA技术交流QQ群:170933152 1.在Centos下安装rabbitmq,之前都是在windows中安装的,centos下安装还挺麻烦 这里介绍两种安装方法: 第一种,我测试了,太慢了,不 ...
- RabbitMQ在windows10环境下安装步骤
下载并安装Erlang RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang. Erlang官网下载地址:http://www.erlang.o ...
- mac笔记本安装mysql_mac下安装MySQL完整步骤(图文详情)
原文摘自:http://www.jb51.net/article/103841.htm 最近使用Mac系统,准备搭建一套本地web服务器环境.因为Mac系统自带PHP和apach,但是没有自带mysq ...
- RabbitMQ消息队列-Centos7下安装RabbitMQ3.6.1
如果你看过前两章对RabbitMQ已经有了一定了解,现在已经摩拳擦掌,来吧动手吧! 用什么系统 本文使用的是Centos7,为了保证对linux不太熟悉的伙伴也能轻松上手(避免折在安装的路上),下面是 ...
- 利用python安装opencv_Linux下安装OpenCV+Python支持
原博文 2016-08-22 09:42 − 以下说明在Linux下Python和OpenCV结合安装的过程,Python要使用OpenCV模块,则必须导入OpenCV提供的包,所以要提供Python ...
- Python安装(Windows下安装/Linux下安装)
1.准备工作 1.1.运行环境 课程中:Windows下的运行环境 1.2.Python是什么 (1)Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1 ...
- freerdp 解压安装_Linux下安装FreeRDP,连接Windows远程桌面好软件软件.doc
Linux下安装FreeRDP,连接Windows远程桌面好软件软件 Linux下安装FreeRDP,连接Windows远程桌面的好软件软件 偶尔也玩一下Linux,发现Linux下没有类似微软远程桌 ...
- ubuntu 在线安装mysql_Ubuntu下安装MySQL5.6
我想我们不应该在安装软件上面耽误太多时间,但是很多时候,我们去被安装挡在了门外,尤其是初次在Linux下.作为一个程序猿,最近决定转战linux,MySQL是必须要有的,讲一下我的安装过程.在Ubun ...
- 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 解压安装包 ...
最新文章
- 装饰器模式(Decorator)
- centos7 mysql 5.6.38_centos7.4 安装mysql 5.6.38
- 使用反射将DataTable的数据转成实体类
- 程序员过关斩将--快速迁移10亿级数据
- JDBC连接池和DBUtils
- CHIP-seq流程学习笔记(11)-使用GSEA软件进行GSEA分析
- random.sample函数
- SymPy学习之Plotting Module
- panic: reflect: reflect.Value.SetString using value obtained using unexported field
- Android debug时一直处于waiting for debugger解决办法
- php rsa 跨平台问题,为啥 rsa 这种算法扩展 php/python 不自带。而且跨平台也不是处理的很好...
- 编辑器将光标横线变成竖线
- USB描述符(附加USB HID报告描述符 )
- DeepHPV:一个用于预测HPV整合人类基因位点的深度学习模型
- ZLMediaKit源码分析 - NotifyCenter
- 软件工程-人事管理系统项目(一)
- SNMP Private Enterprise Number 申请流程
- React Native专题-江
- 2022-2028全球激光清洗设备行业调研及趋势分析报告
- 无损连接和模式分解题型