0

0

给PHP安装amqp扩展

php中文网

php中文网

发布时间:2016-06-06 19:43:59

|

1980人浏览过

|

来源于php中文网

原创

有史以来最坑爹的一次扩展安装,不晓得诸位有没有尝试过…………各种报错啊!有木有?!¥#@%%*…… 捣鼓半天,只编译了个0.1.x的扩展版本,瞅了下,擦,函数少的可怜啊- -||| 不行,继续~ 经过一天的努力,老天总算开了,赶紧总结下吧~ -------------------

有史以来最坑爹的一次扩展安装,不晓得诸位有没有尝试过…………各种报错啊!有木有?!¥#@%%&*……

捣鼓半天,只编译了个0.1.x的扩展版本,瞅了下,擦,函数少的可怜啊- -||| 

不行,继续~

经过一天的努力,老天总算开眼了,赶紧总结下吧~

----------------------------------------------- 我是分割线 ---------------------------------------------------

AMQP——高级消息队列协议,目前比较有名气的实现大概就是大名鼎鼎的RabbitMQ了。

《[rabbitmq+python入门经典] 兔子和兔子窝》)

Shoping购物网源码
Shoping购物网源码

该系统采用多层模式开发,这个网站主要展示女装的经营,更易于网站的扩展和后期的维护,同时也根据常用的SQL注入手段做出相应的防御以提高网站的安全性,本网站实现了购物车,产品订单管理,产品展示,等等,后台实现了动态权限的管理,客户管理,订单管理以及商品管理等等,前台页面设计精致,后台便于操作等。实现了无限子类的添加,实现了动态权限的管理,支持一下一个人做的辛苦

下载

PHP扩展当然还是官方推荐的好了。OK,就它了 http://php.net/manual/en/book.amqp.php 

To install the AMQP PHP extension, you must first install the ? librabbitmq library. You will need the 0-9-1 version of the rabbitmq-c client library, linked to the rabbitmq-codegen version that corresponds to the version of the broker you are using. Use the following steps to download and install the library:


  # Download the rabbitmq-c library @ version 0-9-1

  hg clone http://hg.rabbitmq.com/rabbitmq-c/rev/b01825ecc112 rabbitmq-c

  cd rabbitmq-c

  # Add the codegen requirement. To find the full list, go here: http://hg.rabbitmq.com/rabbitmq-codegen/tags

  # and copy the URL for the appropriate broker version.

  hg clone http://hg.rabbitmq.com/rabbitmq-codegen/rev/16bbcb711380 codegen

  # Configure, compile and install

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

扩展是C写的,由于C与RabbitMQ通信一般需要依赖rabbitmq-c库(也就是librabbitmq),所以编译扩展前需要先装依赖库。好吧,那就按要求装吧~

原文是用hg工具,需要装mercurial(一个轻量级的版本控制系统),这里就不介绍了,我们还是用传统的方法。

首先,到这里下载rabbitmq-c的v0.2版:https://github.com/alanxz/rabbitmq-c/tags OR 直接shell:

wget https://github.com/alanxz/rabbitmq-c/tarball/0.2

tar zxvf 0.2

cd alanxz-rabbitmq*

(为什么0.2版?好吧,我也不知道,总之它的各版本兼容性非常不好,经过我屡试屡败屡败试……发现0.2版还算顺利 - -)

接着,到这里下载最新版的codegen配件:https://github.com/rabbitmq/rabbitmq-codegen/downloads ,OR 直接shell:

wget https://github.com/rabbitmq/rabbitmq-codegen/tarball/master

tar zxvf master 

mv rabbitmq-* codegen

(上面这步必须要把其解压,并放到rabbitmq-c的目录中的codegen目录中,也就是上面最后那步做的。)

按照手册介绍,先进行:

autoreconf -i

如果你一切顺利,没有报错,那么恭喜了!后面则是常规操作:

./configure && make && make install

如果仍未报错,哇塞,我只能说你NB!可以直接进行扩展编译了。

不过大部分情况下你或许和我一样遇到各种各样报错信息,那么后面我们再说,这里先把编译扩展顺带说完。

直接回到官方下载(我下载的是1.0.0版,新的版本我没事试,应该也可以的) http://pecl.php.net/package/amqp ,并编译成so文件 OR shell:

wget http://pecl.php.net/get/amqp-1.0.0.tgz

tar zxvf amqp-1.0.0.tgz

cd amqp-1.0.0

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp

make && make install

(/usr/local/php/bin/phpize 和 /usr/local/php/bin/php-config 为实际php所在目录,如果不清楚,可以whereis php查看。)

如果之前的步骤顺利,这步应该没什么问题,直接在php.ini中添加生成的amqp.so,重启httpd或php-cgi即可,不再赘述。

给PHP安装amqp扩展

---------------------------------------------------我是分割线----------------------------------------------------

好了,如果你和我一样悲催,从autoreconf -i就开始作死地报错,那么我这里提供一些可能有用的处理方法。

autoreconf 时有可能遇到如下报错:

onfigure.ac:60: error: possibly undefined macro: AS_CASE
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:69: error: possibly undefined macro: AS_IF
configure.ac:92: error: possibly undefined macro: AC_PATH_PROGS_FEATURE_CHECK
configure.ac:97: error: possibly undefined macro: AC_MSG_RESULT
configure:2907: error: possibly undefined macro: m4_foreach_w
autoreconf: /usr/bin/autoconf failed with exit status: 1

奇怪的是,当我再次执行却报不同的错。。。

configure.ac: installing `./install-sh'

configure.ac: installing `./missing'

configure.ac:34: installing `./config.guess'

configure.ac:34: installing `./config.sub'

Makefile.am:3: Libtool library used but `LIBTOOL' is undefined

Makefile.am:3: 

Makefile.am:3: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'

Makefile.am:3: to `configure.ac' and run `aclocal' and `autoconf' again.

Makefile.am: C objects in subdir but `AM_PROG_CC_C_O' not in `configure.ac'

Makefile.am: installing `./compile'

Makefile.am: installing `./depcomp'

autoreconf: automake failed with exit status: 1

首先确保一些必要的依赖库是否已安装,如:libtool、autoconf、automake 等

这个大家自行google下载并编译安装,常规操作,没啥说的,这里我直接yum了:

yum install libtool autoconf automake 

看下libtoolize在哪:

whereis libtoolize

显示例如:libtoolize: /usr/bin/libtoolize,则可执行一下

/usr/bin/libtoolize

还有可能会出现这种错:

/usr/share/aclocal/libmcrypt.m4:17: warning: underquoted definition of AM_PATH_LIBMCRYPT

/usr/share/aclocal/libmcrypt.m4:17:   run info '(automake)Extending aclocal'

/usr/share/aclocal/libmcrypt.m4:17:   or see http://sources.redhat.com/automake/automake.html#Extending-aclocal

解决办法如下:

编辑:/usr/share/aclocal/libmcrypt.m4

修改17行的:AC_DEFUN(AM_PATH_LIBMCRYPT,   为  AC_DEFUN([AM_PATH_LIBMCRYPT],

---------------------------------------------------我是分割线----------------------------------------------------

/usr/bin/libtoolize 时可能会报的错:

libtoolize: putting auxiliary files in `.'.

libtoolize: linking file `./ltmain.sh'

libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and

libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.

libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.

报错很明确,按照提示操作即可:

编辑:configure.ac

添加一行:AC_CONFIG_MACRO_DIR([m4])

重新执行:/usr/bin/libtoolize

编辑:Makefile.am

添加一行:ACLOCAL_AMFLAGS=-I m4

---------------------------------------------------我是分割线----------------------------------------------------

./configure 时可能会报的错:

checking location of AMQP codegen directory... configure: error: could not find AMQP spec file at "'/codegen/amqp-0.9.1.json'"

configure文件中目录与实际情况不符,虽然可以通过手动修改解决,但不建议,其实应该是rabbitmq-c和codegen的版本不匹配造成的,更换版本。


checking finding a python with simplejson installed... configure: error: could not find a python that can 'import simplejson'

很明显,该错误是由于python缺少simplejson包造成,可通过easy_install方式安装即可。

---------------------------------------------------我是分割线----------------------------------------------------

还有更多报错情况,没有一一记录,总之解决方法就是:“报错信息”+“google”!

BTW:相信搜一会儿你就会由衷得体会到:F*CK THE GFW!!!

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

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

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

115

2025.12.24

拼豆图纸在线生成器
拼豆图纸在线生成器

拼豆图纸生成器有PixelBeads在线版、BeadGen和“豆图快转”;推荐通过pixelbeads.online或搜索“beadgen free online”直达官网,避开需注册的诱导页面。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

82

2025.12.24

俄罗斯搜索引擎yandex官方入口地址(最新版)
俄罗斯搜索引擎yandex官方入口地址(最新版)

Yandex官方入口网址是https://yandex.com。用户可通过网页端直连或移动端浏览器直接访问,无需登录即可使用搜索、图片、新闻、地图等全部基础功能,并支持多语种检索与静态资源精准筛选。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

546

2025.12.24

JavaScript ES6新特性
JavaScript ES6新特性

ES6是JavaScript的根本性升级,引入let/const实现块级作用域、箭头函数解决this绑定问题、解构赋值与模板字符串简化数据处理、对象简写与模块化提升代码可读性与组织性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

150

2025.12.24

php框架基础知识汇总
php框架基础知识汇总

php框架是构建web应用程序的架构,提供工具和功能,以简化开发过程。选择合适的框架取决于项目需求和技能水平。实战案例展示了使用laravel构建博客的步骤,包括安装、创建模型、定义路由、编写控制器和呈现视图。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

20

2025.12.24

Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

47

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

7

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

12

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

371

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 7.8万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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