Installing RabbitMQ
Updated on 20 Sep 2023
In this step by step guide we will learn how to install Rabbitmq, send messages from the command line (PHP and Python), and receive messages on the browser. Then we’ll step it up a gear and do it over SSL.
Installing Rabbitmq and plugins Management Console rabbitmqctl - creating vhosts and users rabbitmqctl - setting permissions rabbitmqctl - set user tags rabbitmq-diagnostics rabbitmq-diagnostics listeners rabbitmqadmin
Installing Rabbitmq and plugins
Install rabbitmq with the following command
sudo apt-get install rabbitmq-server
We will also enable some necessary plugins
sudo rabbitmq-plugins enable rabbitmq_stomp
sudo rabbitmq-plugins enable rabbitmq_web_stomp
sudo rabbitmq-plugins enable rabbitmq_management
Once we have enabled the plugins, we need to restart.
sudo systemctl restart rabbitmq-server
Management Console
If this has been installed on a local computer, you will be able to access the management console via a browser. However, you will need to set the user_tags first.
http://localhost:15672
rabbitmqctl - creating vhosts and users
Next we need to create vhosts and users. A vhost is like a virtual host in Apache, but it is used for RabbitMQ. I.e. we will create a vhost called demo_host
, and we’ll see how that is used in code a little later on.
We are going to be using
rabbitmqctl add_vhost
rabbitmqctl add_user
sudo rabbitmqctl add_vhost demo_host
sudo rabbitmqctl add_user demo_user demo_pass
Other commands available to remove the vhosts and users are
rabbitmqctl delete_vhost
rabbitmqctl delete_user
rabbitmqctl - setting permissions
Now that the users and vhosts have been created, we need to set some permissions. In particular our demo_user
needs access to demo_host
sudo rabbitmqctl set_permissions -p demo_host demo_user ".*" ".*" ".*"
rabbitmqctl - set user tags
This is necessary if we want to access the GUI from the web browser. I also believe that this is necessary if you want to run the CLI commands, rabbitmqadmin
(discussed later).
sudo rabbitmqctl set_user_tags demo_user administrator