如何配置Debian 11上的PHP与RabbitMQ的详细步骤?

絕刀狂花
发布: 2025-11-12 15:23:03
原创
941人浏览过
首先安装配置RabbitMQ并启动服务,接着启用管理插件,创建专用用户与虚拟主机,然后安装PHP及amqp扩展,最后通过生产者与消费者代码验证通信。

如何配置debian 11上的php与rabbitmq的详细步骤?

如果您尝试在Debian 11系统上配置PHP与RabbitMQ的集成环境,但发现消息队列无法正常通信或PHP扩展未加载,则可能是由于缺少必要的AMQP扩展或服务未正确启动。以下是完成该配置的具体步骤:

一、安装并配置RabbitMQ服务器

此步骤的目标是部署RabbitMQ消息代理服务,确保其能够在系统中正常运行并监听默认端口

1、更新系统包列表以获取最新的软件源信息:apt update

2、安装Erlang环境,因为RabbitMQ基于Erlang开发,需先安装依赖:apt install -y erlang

立即学习PHP免费学习笔记(深入)”;

3、添加RabbitMQ官方APT仓库密钥到系统信任密钥环:curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.gpg > /dev/null

4、将RabbitMQ的APT源写入系统源列表文件:echo "deb [signed-by=/usr/share/keyrings/rabbitmq.gpg] https://ppa.launchpad.net/rabbitmq/rabbitmq-server/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/rabbitmq.list

5、再次执行apt update以加载新添加的仓库信息。

6、安装RabbitMQ服务器:apt install -y rabbitmq-server

7、启动RabbitMQ服务并设置为开机自启:systemctl enable rabbitmq-server && systemctl start rabbitmq-server

二、启用RabbitMQ管理插件

启用Web管理界面可方便监控队列状态、用户权限和连接情况。

1、运行命令开启管理插件:rabbitmq-plugins enable rabbitmq_management

2、重启RabbitMQ服务使插件生效:systemctl restart rabbitmq-server

3、通过浏览器访问http://your_server_ip:15672,使用默认用户名guest和密码guest登录管理界面。

三、创建专用用户与虚拟主机

为提高安全性,应避免使用默认账户,建议创建独立的虚拟主机和用户。

Cutout老照片上色
Cutout老照片上色

Cutout.Pro推出的黑白图片上色

Cutout老照片上色 20
查看详情 Cutout老照片上色

1、添加新的虚拟主机,例如命名为my_vhost:rabbitmqctl add_vhost my_vhost

2、创建新用户并设置密码:rabbitmqctl add_user myuser mypassword

3、授予该用户对指定虚拟主机的全部权限:rabbitmqctl set_permissions -p my_vhost myuser ".*" ".*" ".*"

四、安装PHP及AMQP扩展支持

需要安装php-amqp扩展以便PHP脚本能够通过AMQP协议与RabbitMQ进行通信。

1、安装PHP及其常用组件:apt install -y php php-cli php-dev

2、使用PECL安装amqp扩展:pecl install amqp

3、在php.ini配置文件中手动加载扩展,找到文件位置后添加一行:extension=amqp.so

4、验证扩展是否成功加载:php -m | grep amqp,若输出amqp则表示安装成功。

五、编写PHP生产者与消费者示例代码

测试PHP能否通过AMQP扩展发送和接收消息,验证整个链路连通性。

1、创建名为producer.php的文件,内容如下:

<?php
$connection = new AMQPConnection();
$connection->setHost('localhost');
$connection->setVhost('my_vhost');
$connection->setLogin('myuser');
$connection->setPassword('mypassword');
if (!$connection->connect()) {
    die("Cannot connect to broker\n");
}
$channel = new AMQPChannel($connection);
$exchange = new AMQPExchange($channel);
$exchange->setName('test_exchange');
$exchange->setType(AMQP_EX_TYPE_DIRECT);
$exchange->declareExchange();
$exchange->publish("Hello from PHP producer!", 'test_routing_key');
echo "Message sent successfully\n";
$connection->disconnect();
?>

2、创建名为consumer.php的文件,用于接收消息:

<?php
$connection = new AMQPConnection();
$connection->setHost('localhost');
$connection->setVhost('my_vhost');
$connection->setLogin('myuser');
$connection->setPassword('mypassword');
if (!$connection->connect()) {
    die("Cannot connect to broker\n");
}
$channel = new AMQPChannel($connection);
$queue = new AMQPQueue($channel);
$queue->setName('test_queue');
$queue->bind('test_exchange', 'test_routing_key');
echo "Waiting for messages...\n";
while ($msg = $queue->get()) {
    echo "Received: " . $msg->getBody() . "\n";
}
$connection->disconnect();
?>

3、在终端分别运行两个脚本:php producer.php 发送消息,php consumer.php 接收消息。

以上就是如何配置Debian 11上的PHP与RabbitMQ的详细步骤?的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号