IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Homestead(ubuntu) + Laravel 使用RabbitMQ -> 正文阅读

[PHP知识库]Homestead(ubuntu) + Laravel 使用RabbitMQ

在这里插入图片描述

安装 erlang

erlangRabbitMQ 的依赖。首先执行

sudo apt-get update

然后执行

sudo apt-get install erlang

安装完毕后,输入 erl 查看 erlang 版本,出现如下提示则表示安装成功:

Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:10] [kernel-poll:false]

Eshell V9.2  (abort with ^G)
1>

然后退出 erlang 命令行:按下 ctrl+c,然后输入 a 即可。

安装 RabbitMq

sudo apt-get install rabbitmq-server

安装完毕后,查看 RabbitMQ 状态:

sudo rabbitmqctl status

附:
启动RabbitMQ: service rabbitmq-server start
停止RabbitMQ: service rabbitmq-server stop 
重启RabbitMQ: service rabbitmq-server restart 

配置 RabbitMQ

执行命令,启动 RabbitMQ 插件

sudo rabbitmq-plugins enable rabbitmq_management

添加用户 RabbitMQ,格式:rabbitmqctl add_user 用户名 密码

rabbitmqctl add_user admin admin

给予用户管理员权限

sudo rabbitmqctl set_user_tags admin administrator

为用户设置读写权限

sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

打开 RabbitMQ 后台

浏览器中输入:http:// 服务器 ip+:15672, 例如我的是:192.168.10.10:15672/

15672 端口默认是关闭的,因此需要打开

1. sudo apt-get install iptables
2. sudo iptables -I INPUT -p tcp --dport 15672 -j ACCEPT

运行环境(ubuntu)安装 amqp 扩展

这些扩展是运行必须,可以类比为 mongodb,redis 扩展。分别执行以下指令

sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install libssl-dev
sudo apt-get -y install librabbitmq-dev

在这里安装可能会遇到一些小问题,遇事不决就执行:

sudo apt-get update
//时间可能会需要很久,我执行等它运行的时候大概花了一个小时
sudo apt-get upgrade

以上的扩展安装完成后执行指令安装 amqp 扩展:

sudo pecl install amqp

安装过程中会提示

28 source files, building
running: phpize
Configuring for:
PHP Api Version:         20170718
Zend Module Api No:      20170718
Zend Extension Api No:   320170718
Set the path to librabbitmq install prefix [autodetect] :

回车即可,等待安装完成:
You should add "extension=amqp.so" to php.ini

sudo -s
echo extension=amqp.so >> /etc/php/7.2/cli/php.ini
echo extension=amqp.so >> /etc/php/7.2/fpm/php.ini
sudo service php7.2-fpm restart

然后执行 php -m 查看扩展是否安装完成

Laravel 项目中使用

添加 RabbitMQ

Package VersionLaravel Version
6.05.5
7.05.6
7.15.7
7.25.8
8.05.9
96
106.7
composer require vladimir-yuldashev/laravel-queue-rabbitmq ^7.1

app/config/queue.php 文件中,connections 数组中添加

'rabbitmq' => [
    'driver'                => 'rabbitmq',
 
    'host'                  => env('RABBITMQ_HOST', '127.0.0.1'),
    'port'                  => env('RABBITMQ_PORT', 5672),
 
    'vhost'                 => env('RABBITMQ_VHOST', '/'),
    'login'                 => env('RABBITMQ_LOGIN', 'guest'),
    'password'              => env('RABBITMQ_PASSWORD', 'guest'),
 
    'queue'                 => env('RABBITMQ_QUEUE'), // name of the default queue,
 
    'exchange_declare'      => env('RABBITMQ_EXCHANGE_DECLARE', true), // create the exchange if not exists
    'queue_declare_bind'    => env('RABBITMQ_QUEUE_DECLARE_BIND', true), // create the queue if not exists and bind to the exchange
 
    'queue_params'          => [
        'passive'           => env('RABBITMQ_QUEUE_PASSIVE', false),
        'durable'           => env('RABBITMQ_QUEUE_DURABLE', true),
        'exclusive'         => env('RABBITMQ_QUEUE_EXCLUSIVE', false),
        'auto_delete'       => env('RABBITMQ_QUEUE_AUTODELETE', false),
    ],
 
    'exchange_params' => [
        'name'        => env('RABBITMQ_EXCHANGE_NAME', null),
        'type'        => env('RABBITMQ_EXCHANGE_TYPE', 'direct'), // more info at http://www.rabbitmq.com/tutorials/amqp-concepts.html
        'passive'     => env('RABBITMQ_EXCHANGE_PASSIVE', false),
        'durable'     => env('RABBITMQ_EXCHANGE_DURABLE', true), // the exchange will survive server restarts
        'auto_delete' => env('RABBITMQ_EXCHANGE_AUTODELETE', false),
    ],
],

.env 中添加

QUEUE_CONNECTION=rabbitmq #修改一下
RABBITMQ_HOST = 127.0.0.1   #要连接得主机名
RABBITMQ_PORT = 5672  #端口
RABBITMQ_VHOST = / 
RABBITMQ_LOGIN = admin #mq登录名
RABBITMQ_PASSWORD = admin  #mq登陆密码
RABBITMQ_QUEUE = test  #mq连接得测试名

其他和正常跑队列区别不大

php artisan queue:restart
php artisan queue:work
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章           查看所有文章
加:2021-08-09 13:40:07  更:2021-08-09 13:40:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/13 20:56:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码