• centos7.5下安装rabbitmq服务端以及php扩展


     rabbitmq依赖erlang,centos7默认未安装erlang,erlang默认三种格式的安装源文件:

    • RabbitMQ提供的被剥离的包,只提供运行RabbitMQ所需的组件,官方称零依赖项,容易安装,如果Erlang只是用来提供运行RabbitMQ的,推荐使用。
    • Erlang官方提供的包,安装时需要安装依赖多,如果还需要Erlang做相关开发或运行环境,使用该包
    • EPEL源提供的包,但该包版本过低,不使用该方法下载安装

    这里仅用来运行rabbitmq,选择零依赖项的rpm二进制文件包即可。

    [root@guangzhou src]# wget https://bintray.com/rabbitmq-erlang/rpm/download_file?file_path=erlang%2F19%2Fel%2F7%2Fx86_64%2Ferlang-19.3.6.13-1.el7.centos.x86_64.rpm
    [root@guangzhou src]# mv download_file?file_path=erlang%2F19%2Fel%2F7%2Fx86_64%2Ferlang-19.3.6.13-1.el7.centos.x86_64.rpm erlang-19.3.6.13-1.el7.centos.x86_64.rpm
    [root@guangzhou src]# rpm -ivh erlang-19.3.6.13-1.el7.centos.x86_64.rpm
    #查看erlang版本
    [root@guangzhou src]# erl -version
    Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 8.3.5.7

    erlang安装成功,再安装rabbitmq-server:

    #安装rabbitmq之前需要安装socat服务,依然下载二进制安装包
    [root@guangzhou src]# wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
    [root@guangzhou src]# rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
    
    #开始安装rabbitmq-server
    root@guangzhou src]# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_16/rabbitmq-server-3.6.16-1.el6.noarch.rpm
    [root@guangzhou src]# rpm -ivh rabbitmq-server-3.6.16-1.el6.noarch.rpm
    #安装成功运行服务
    [root@guangzhou src]# rabbitmq-server
    
                  RabbitMQ 3.6.16. Copyright (C) 2007-2018 Pivotal Software, Inc.
      ##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/
      ##  ##
      ##########  Logs: /var/log/rabbitmq/rabbit@guangzhou.log
      ######  ##        /var/log/rabbitmq/rabbit@guangzhou-sasl.log
      ##########
                  Starting broker...
     completed with 0 plugins.
    
    [root@guangzhou src]# systemctl status rabbitmq-server
    ● rabbitmq-server.service - LSB: Enable AMQP service provided by RabbitMQ broker
       Loaded: loaded (/etc/rc.d/init.d/rabbitmq-server; bad; vendor preset: disabled)
       Active: active (running) since 四 2020-01-30 10:50:27 CST; 6s ago
         Docs: man:systemd-sysv-generator(8)
      Process: 31677 ExecStart=/etc/rc.d/init.d/rabbitmq-server start (code=exited, status=0/SUCCESS)
       CGroup: /system.slice/rabbitmq-server.service
               ├─31894 /bin/sh /etc/rc.d/init.d/rabbitmq-server start
               ├─31912 /bin/bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /usr/sbin/rabbitmq-server
               └─31913 /bin/sh /usr/sbin/rabbitmq-server
    
    1月 30 10:50:22 guangzhou systemd[1]: Starting LSB: Enable AMQP service provided by RabbitMQ broker...
    1月 30 10:50:22 guangzhou su[31763]: (to rabbitmq) root on none
    1月 30 10:50:23 guangzhou su[31909]: (to rabbitmq) root on none
    1月 30 10:50:23 guangzhou su[31927]: (to rabbitmq) root on none
    1月 30 10:50:27 guangzhou rabbitmq-server[31677]: Starting rabbitmq-server: SUCCESS
    1月 30 10:50:27 guangzhou systemd[1]: Started LSB: Enable AMQP service provided by RabbitMQ broker.
    1月 30 10:50:27 guangzhou rabbitmq-server[31677]: rabbitmq-server.
    查看rabbitmq-server运行状态
    
    systemctl status rabbitmq-server
    
    启动rabbitmq-server服务
    
    systemctl start rabbitmq-server
    
    加入开机启动
    
    systemctl enable rabbitmq-server
    
    停止rabbitmq-server服务
    
    systemctl stop rabbitmq-server
    
    禁止开机启动
    
    systemctl disable rabbitmq-server
    
    是否允许开机启动
    
    systemctl is-enabled rabbitmq-server

    开启web后台管理插件

    [root@guangzhou src]# rabbitmq-plugins enable rabbitmq_management
    The following plugins have been enabled:
      amqp_client
      cowlib
      cowboy
      rabbitmq_web_dispatch
      rabbitmq_management_agent
      rabbitmq_management
    
    Applying plugin configuration to rabbit@guangzhou... started 6 plugins.
    
    #查看rabbitmq-server监听的所有插件
    [root@guangzhou src]# rabbitmqctl status|grep list
     {listeners,[{clustering,25672,"::"},{amqp,5672,"::"},{http,15672,"::"}]},
    
    #其中第三个的端口15672,这是rabbitmq_management插件监听的端口
    
    #查看已所有开放的端口(centos7默认由firewalld控制端口)
    [root@guangzhou src]# firewall-cmd --zone=public --list-ports
    FirewallD is not running
    [root@guangzhou src]#  systemctl start firewalld
    #可见未开放任何端口
    [root@guangzhou src]# firewall-cmd --zone=public --list-ports
    
    #开放15672端口给浏览器访问用
    [root@guangzhou src]# firewall-cmd --zone=public --add-port=15672/tcp --permanent
    success
    [root@guangzhou src]# firewall-cmd --zone=public --add-port=5672/tcp --permanent
    success
    [root@guangzhou src]# firewall-cmd --reload
    success
    [root@guangzhou src]# firewall-cmd --zone=public --list-ports
    15672/tcp 5672/tcp
    [root@guangzhou src]#
    
    #浏览器中输入 http://服务器IP:15672 就可以看到RabbitMQ的WEB管理台

    创建用户

    #新增用户(用户名+密码)
    [root@guangzhou src]# rabbitmqctl add_user admin freedom
    Creating user "admin"
    #为用户配置权限
    [root@guangzhou src]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
    Setting permissions for user "admin" in vhost "/"
    #将用户设置为管理员
    [root@guangzhou src]# rabbitmqctl set_user_tags admin administrator
    Setting tags for user "admin" to [administrator]
    #查看所有用户
    [root@guangzhou src]# rabbitmqctl list_users
    Listing users
    admin    [administrator]
    guest    [administrator]

     安装rabbitmq客户端

    [root@guangzhou src]# wget https://github.com/alanxz/rabbitmq-c/archive/v0.9.0.tar.gz
    [root@guangzhou src]# mv v0.9.0.tar.gz rabbitmq-c-v0.9.0.tar.gz
    [root@guangzhou src]# tar -zxvf rabbitmq-c-v0.9.0.tar.gz
    [root@guangzhou src]# cd rabbitmq-c-0.9.0/
    [root@guangzhou rabbitmq-c-0.9.0]# mkdir build && cd build
    #当cmake根据rabbitmq-c的根目录下的CMakeList.txt创建Makefile文件时,会将Makefile文件放进build目录
    [root@guangzhou build]# cmake .. 
    [root@guangzhou build]# cd .. 
    [root@guangzhou rabbitmq-c-0.9.0]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq-c-0.9.0
    [root@guangzhou rabbitmq-c-0.9.0]# cmake --build . --target install

    安装rabbitmq的php扩展

    [root@guangzhou src]# wget http://pecl.php.net/get/amqp-1.9.4.tgz
    [root@guangzhou src]# tar -zxvf amqp-1.9.4.tgz
    [root@guangzhou src]# cd amqp-1.9.4/
    [root@guangzhou amqp-1.9.4]# /usr/local/php/bin/phpize
    Configuring for:
    PHP Api Version:         20180731
    Zend Module Api No:      20180731
    Zend Extension Api No:   320180731
    [root@guangzhou amqp-1.9.4]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c-0.9.0
    [root@guangzhou amqp-1.9.4]# make
    /bin/sh /usr/local/src/amqp-1.9.4/libtool --mode=link cc -DPHP_ATOM_INC -I/usr/local/src/amqp-1.9.4/include -I/usr/local/src/amqp-1.9.4/main -I/usr/local/src/amqp-1.9.4 -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib -I/usr/local/rabbitmq-c-0.9.0/include  -DHAVE_CONFIG_H  -g -O2    -o amqp.la -export-dynamic -avoid-version -prefer-pic -module -rpath /usr/local/src/amqp-1.9.4/modules  amqp.lo amqp_type.lo amqp_exchange.lo amqp_queue.lo amqp_connection.lo amqp_connection_resource.lo amqp_channel.lo amqp_envelope.lo amqp_basic_properties.lo amqp_methods_handling.lo amqp_timestamp.lo amqp_decimal.lo -Wl,-rpath,/usr/local/rabbitmq-c-0.9.0/lib -L/usr/local/rabbitmq-c-0.9.0/lib -lrabbitmq
    cc -shared  .libs/amqp.o .libs/amqp_type.o .libs/amqp_exchange.o .libs/amqp_queue.o .libs/amqp_connection.o .libs/amqp_connection_resource.o .libs/amqp_channel.o .libs/amqp_envelope.o .libs/amqp_basic_properties.o .libs/amqp_methods_handling.o .libs/amqp_timestamp.o .libs/amqp_decimal.o  -L/usr/local/rabbitmq-c-0.9.0/lib -lrabbitmq  -Wl,-rpath -Wl,/usr/local/rabbitmq-c-0.9.0/lib -Wl,-soname -Wl,amqp.so -o .libs/amqp.so
    /usr/bin/ld: cannot find -lrabbitmq
    collect2: error: ld returned 1 exit status
    make: *** [amqp.la] 错误 1
    
    #这里使用make命令时会报错,对rabbitmq-c-0.9.0目录创建软链指向
    [root@guangzhou amqp-1.9.4]# ln -s /usr/local/rabbitmq-c-0.9.0/lib64 /usr/local/rabbitmq-c-0.9.0/lib
    
    #再次执行make命令
    [root@guangzhou amqp-1.9.4]# make
    [root@guangzhou amqp-1.9.4]# make install
    Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/
    
    #更改php.ini,加上extension=amqp.so
    root@guangzhou etc]# vim php.ini
    [root@guangzhou etc]# php --ri amqp
    
    amqp
    
    Version => 1.9.4
    Revision => release
    Compiled => Jan 30 2020 @ 17:31:44
    AMQP protocol version => 0-9-1
    librabbitmq version => 0.9.0
    Default max channels per connection => 256
    Default max frame size => 131072
    Default heartbeats interval => 0
    
    Directive => Local Value => Master Value
    amqp.auto_ack => 0 => 0
    amqp.cacert => no value => no value
    amqp.cert => no value => no value
    amqp.channel_max => 256 => 256
    amqp.connect_timeout => 0 => 0
    amqp.frame_max => 131072 => 131072
    amqp.heartbeat => 0 => 0
    amqp.host => localhost => localhost
    amqp.key => no value => no value
    amqp.login => guest => guest
    amqp.password => guest => guest
    amqp.port => 5672 => 5672
    amqp.prefetch_count => 3 => 3
    amqp.read_timeout => 0 => 0
    amqp.sasl_method => 0 => 0
    amqp.timeout => no value => no value
    amqp.verify => 1 => 1
    amqp.vhost => / => /
    amqp.write_timeout => 0 => 0
    [root@guangzhou etc]# systemctl restart php-fpm.service
    
    

     至此安装完成,最开始使用yum安装erlang,走了很多坑,包括涉及和rabbitmq版本兼容的问题,一直没解决好,这里就不列出来其中艰辛过程了。后yum卸载erlang重新用rpm二进制包安装进展顺利。

  • 相关阅读:
    进程控制
    文件、目录操作相关函数
    Linux 系统IO函数 复制文件内容
    gdb调试
    makefile的使用
    GCC编译器
    vim命令的使用
    Linux Ubuntu笔记(常用命令)
    博客搬家(CSDN->博客园)
    level 4
  • 原文地址:https://www.cnblogs.com/wscsq789/p/11717577.html
Copyright © 2020-2023  润新知