用于ubuntu的默认源里面没有php5-amqp这个包,所以要用上amqp得考手动编译。

参考手册 http://php.net/manual/pl/book.amqp.php

首先安装必须的php编译工具

  1. sudo apt-get install php5-dev

安装rabbitmq的库

  1. sudo apt-get install librabbitmq-dev

如果你的Linux发行版没有现成的librabbitmq-dev包,那么可以通过下载源码编译安装
然后如果你没有安装git话请安装一下git,因为我们要从官方的版本库中获取源代码
# 克隆源码并编译

  1. git clone git://github.com/alanxz/rabbitmq-c.git
  2. cd rabbitmq-c
  3. git submodule init
  4. git submodule update

# 编译库

  1. autoreconf -i && ./configure && make && sudo make install

然后我们需要去下载php扩展的源代码,地址在此:http://pecl.php.net/package/amqp

当前最新版本为1.0.10

  1. wget http://pecl.php.net/get/amqp-1.0.10.tgz
  2. tar zxf amqp-1.0.10.tgz
  3. cd amqp-1.0.10/
  4. phpize && ./configure --with-amqp && make && sudo make install

如果报错

  1. /root/amqp-1.0.9/amqp_queue.c: In function ‘read_message_from_channel’:
  2. /root/amqp-1.0.9/amqp_queue.c:341:11: error: ‘AMQP_FIELD_KIND_U64’ undeclared (first use in this function)
  3. /root/amqp-1.0.9/amqp_queue.c:341:11: note: each undeclared identifier is reported only once for each function it appears in
  4. /root/amqp-1.0.9/amqp_queue.c: In function ‘zim_amqp_queue_class_nack’:
  5. /root/amqp-1.0.9/amqp_queue.c:1093:2: error: unknown type name ‘amqp_basic_nack_t’
  6. /root/amqp-1.0.9/amqp_queue.c:1113:3: error: request for member ‘delivery_tag’ in something not a structure or union
  7. /root/amqp-1.0.9/amqp_queue.c:1114:3: error: request for member ‘multiple’ in something not a structure or union
  8. /root/amqp-1.0.9/amqp_queue.c:1115:3: error: request for member ‘requeue’ in something not a structure or union
  9. /root/amqp-1.0.9/amqp_queue.c:1120:3: error: ‘AMQP_BASIC_NACK_METHOD’ undeclared (first use in this function)
  10. make: *** [amqp_queue.lo] Error 1

是因为默认的librabbitmq-dev发行版的包比较旧,用上面git方式编译安装最新即可。

去下载最新的php扩展的源代码,地址在此:http://pecl.php.net/package/amqp

  1. wget http://pecl.php.net/get/amqp-x.x.x.tgz
  2. tar zxf amqp-x.x.x.tgz
  3. cd amqp-x.x.x/
  4. 继续执行
  5. phpize && ./configure --with-amqp && make && sudo make install

最后一步创建配置文件

  1. sudo echo "extension = amqp.so" > /etc/php5/conf.d/amqp.ini

重启web服务器在phpinfo页面中看到以下内容说明安装好了

sudo /etc/init.d/apache2 restart

http://localhost/phpinfo.php

启用rabbitamqp的图形界面

1.在安装amqp的时候会自动安装rabbitmq-plugins

寻找一下rabbitmq-plugins的位置

2.切换到rabbitmq-plugins的当前目录,

比如 cd /usr/lib/rabbitmq/bin

启动插件服务

root@luochangjian-System-Product-Name:/usr/lib/rabbitmq/bin# sudo ./rabbitmq-plugins enable rabbitmq_management
Plugin configuration unchanged.

即完成插件安装。安装完成后重启RabbitMQ,打开浏览器。输入 http://127.0.0.1:55672,打开页面要求输入用户名密码,用默认的guest/guest即可

注:若页面找不到,可通过netstat命令检查下端口号是否正确。

ubuntu下手动安装php-amqp模块教程的更多相关文章

  1. Ubuntu下手动安装vscode

    Ubuntu下手动安装vscode1.下载vscodewget https://vscode.cdn.azure.cn/stable/553cfb2c2205db5f15f3ee8395bbd5cf0 ...

  2. Ubuntu下手动安装NextCloud

    安装环境:阿里云VPS Ubuntu 16.04   一. 安装Apache2 sudo apt-get install apache2 安装完成后,浏览器访问http://your ip/,出现It ...

  3. Linux(ubuntu)下手动安装 firefox 6 并且添加快捷方式图标

    Mozilla 正式发布了Firefox 6,如果你的电脑上还在用非常古老的版本么,赶紧过来更新下吧,由于官网上面只是提供了linux下的.bz2的压缩包,没有deb或者rmp格式,所以需要自己安装下 ...

  4. Ubuntu下手动安装VMware Tools步骤

    To mount the CD image and extract the contents: Power on the virtual machine. Log in to the virtual ...

  5. Ubuntu下手动安装Nvidia显卡驱动

    1. 下载最新版的nVidia驱动. http://www.nvidia.com/page/drivers.html 2.编辑blacklist.conf. sudo gedit /etc/modpr ...

  6. centos或ubuntu下手动安装jdk8

    https://blog.csdn.net/pang_ping/article/details/80570011 https://blog.csdn.net/u012707739/article/de ...

  7. Ubuntu 14.04 下手动安装Firefox的Flash插件

    有时候我们不得不採用手动安装一些软件. Ubuntu 14.04 下手动安装Firefox的Flash插件有下面几步 1. 下载Flash插件 下载地址为http://get.adobe.com/cn ...

  8. Torch7在Ubuntu下的安装与配置

    Torch7的本系列教程的主要目的是介绍Torch的入门使用.今天首先分享一下Torch7的安装.(在Ubuntu14.04安装torch7) 为什么选择Torch Torch的目标是在建立科学算法的 ...

  9. Deepin系统手动安装oracle jdk8详细教程

    Deepin系统手动安装oracle jdk8详细教程 oracle官网下载jdk压缩包,使用 sudo tar -zxf jdk***解压文件,我放在在了home/diy/java/jdk路径下. ...

随机推荐

  1. AS2在FLASH中调用EXE文件方法详细说明 已测试可行

    熟悉FLASH功能的朋友都知道fscommand在FLASH中是一个经常用来控制窗口全屏或退出的命令,同时它也是FLASH调用外部可执行程序的一种方法,使用fscommand命令格式如下: fscom ...

  2. 使用linux的shell脚本实现在当前行重复动态显示时间等字符串信息(不另起新行)

    ###本脚本在Suse11sp2当中验证正确 #!/bin/sh )) do echo -ne "\r$(date)" sleep 0.3 done ###关键在 echo 的 & ...

  3. jquery接触初级----jquery 对象和Dom对象

    1. DOM 对象,每一份DOm对象(Document Object model)都可以表示成一棵树,一个基本的网页如下: <!DOCTYPE html> <html lang=&q ...

  4. C++复习:C++的类型转换

    C++的类型转换 1 类型转换名称和语法 C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来 ...

  5. ReactiveX 学习笔记(8)错误处理和 To 操作符

    Error Handling Operators Operators to Convert Observables 本文的主题为对 Observable 进行错误处理的操作符以及转换 Observab ...

  6. centos7启动iptables时报Job for iptables.service failed because the control process exited with error cod

    centos7启动iptables时报Job for iptables.service failed because the control process exited with error cod ...

  7. python实现排序算法一:快速排序

    ##快速排序算法##基本思想:分治法,将数组分为大于和小于该值的两部分数据,然后在两部分数据中进行递归排序,直到只有一个数据结束## step1: 取数组第一个元素为key值,设置两个变量,i = 0 ...

  8. python实现根据指定字符截取对应的行的内容

    工作中遇到的,在一个.c文件中有很多函数,这个.c是自动生成的,需要将所有的函数通过extern放到.h中,每个函数都是UINT32 O_开头,通过正则表达式进行字符匹配以及通过linecache来截 ...

  9. 创建maven项目前的准备工作

    第二步: 在maven中的settings.xml文件中指定 2.1 本地仓库:计算机中一个文件夹,自己定义是哪个文件夹. 2.1 示例语法 <localRepository>D:/mav ...

  10. C# CefSharp MemoryStreamResponseFilter这个类使用过程中遇到的bug,dataIn.CopyTo(dataOut)异常

    使用这个类,可以获取请求的所有数据,可用来下载网站的图片.js等 cef给出的源码 dataIn.CopyTo(dataOut);这句代码,有时候会有问题.问题是这个:dataIn.length 会大 ...