gearman安装【转】
本文操作系统环境:32位 fedora 15
1.安装gearman job server
(1)下载最新版本gearmand:
- wget https://launchpad.net/gearmand/trunk/0.29/+download/gearmand-0.29.tar.gz
- tar -zxvf gearmand-0.29.tar.gz
- cd gearmand-0.29
- ./configuration --prefix=/usr/local/gearmand
configurre 过程中出现如下错误:
configure: error: cannot find Boost headers version >= 1.37.0
这是因为boost的版本低于 1.37.0,需要安装超过1.37.0的boost库,用yum安装比较简单:yum install boost-devel.i686
还有网友提供的编译安装,我没试过:
- wget http://cdnetworks-us-2.dl.sourceforge.net/project/boost/boost/1.44.0/boost_1_44_0.tar.gz
- tar xvzf boost_1_44_0.tar.gz
- 然后进入目录boost_1_44_0执行
- ./bootstrap.sh --prefix=/usr/local/boost
- 生成bjam以后,再执行
- /bjam install
- 执行软链接
- ln -s /usr/local/boost/include/boost/ /usr/local/include/boost
- ln -s /usr/local/boost/lib/libboost_program_options.so /usr/lib/libboost_program_options.so
安装完成后,此问题解决。
重新configure 后,出现别的错误:fatal error: uuid/uuid.h: No such file or directory
这是因为没有uuid库和头文件,需要安装e2fsprogs,试过yum命令安装,问题没解决,需要从源码编译
- wget http://downloads.sourceforge.net/e2fsprogs/e2fsprogs-1.41.14.tar.gz
- tar xvzf e2fsprogs-1.41.14.tar.gz
- 进入e2fsprogs-1.41.14目录后执行
- /configure --prefix=/usr/local/e2fsprogs
- make
- make install
- 然后把uuid目录拷过去
- cp -r lib/uuid/ /usr/include/
再次configuration ,错误消失,于是执行 make
又报错:
- libgearman/.libs/libgearman.so: undefined reference to `uuid_generate'
- libgearman/.libs/libgearman.so: undefined reference to `uuid_unparse'
- collect2: ld returned 1 exit status
问题在网上找到了解决方法,就是重新编译e2fsprogs并加入参数
- cd e2fsprogs-1.41.14
- ./configure --enable-elf-shlibs
- make
- make install
- cp -rf lib/libuuid.so* /usr/lib
- cd gearmand-0.29
make clean
./confugure --prefix=/usr/local/gearmand
make & make install
安装成功,此处最好重新configure,否则有可能还是报一样的错
2.安装php 的gearman 扩展
(1)下载最新版本
- wget http://pecl.php.net/get/gearman-1.0.2.tgz
- tar -zxvf gearman-1.0.2.tgz
- cd gearman-1.0.2
- /usr/local/php/bin/phpize
- ./configuration
但是configure 过程中报如下错误:
configure: error: Please install libgearman
yum install libgearman-devel.i686 libgearman.i686 后,此问题解决,却出现另外一问题:
libgearman version 0.21 or later required
从错误信息来看,是libgearman-devel 的版本低于0.21所至,于是前往寻找版本较高的libgearman-devel
在此页面找到libgearman-devel所以版本列表:http://fr2.rpmfind.net/linux/rpm2html/search.php?query=libgearman-devel&system=&arch=
结果是我的操作系统版本只支持0.14版本的。。。
看来在不重装系统的前提下,只想到降低php gearman库的版本了,从1.0.2版本试到0.8.0,终于搞定~
接下来make&make install 无问题发生
vim /usr/local/php/lib/php.ini 并添加gearman.so
重启php-fpm
执行phpinfo,护展安装成功