http://blog.csdn.net/aidenliu/article/details/7406390

本文操作系统环境:32位 fedora 15

1.安装gearman job server

   (1)下载最新版本gearmand:

[plain] view plain copy
  1. wget https://launchpad.net/gearmand/trunk/0.29/+download/gearmand-0.29.tar.gz  
  2. tar -zxvf gearmand-0.29.tar.gz  
  3. cd gearmand-0.29  
  4. ./configure --prefix=/usr/local/gearmand  

         configure 过程中出现如下错误:

            configure: error: cannot find Boost headers version >= 1.37.0

         这是因为boost的版本低于 1.37.0,需要安装超过1.37.0的boost库,用yum安装比较简单:yum install boost-devel.i686

        还有网友提供的编译安装,我没试过:

       

[html] view plain copy
  1. wget http://cdnetworks-us-2.dl.sourceforge.net/project/boost/boost/1.44.0/boost_1_44_0.tar.gz  
  2. tar xvzf  boost_1_44_0.tar.gz  
  3. 然后进入目录boost_1_44_0执行  
  4.  ./bootstrap.sh --prefix=/usr/local/boost  
  5. 生成bjam以后,再执行  
  6. /bjam install  
  7. 执行软链接  
  8. ln -s /usr/local/boost/include/boost/ /usr/local/include/boost  
  9. 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命令安装,问题没解决,需要从源码编译

[html] view plain copy
  1. wget http://downloads.sourceforge.net/e2fsprogs/e2fsprogs-1.41.14.tar.gz  
  2. tar xvzf  e2fsprogs-1.41.14.tar.gz  
  3. 进入e2fsprogs-1.41.14目录后执行  
  4. /configure --prefix=/usr/local/e2fsprogs  
  5. make  
  6. make install  
  7.  然后把uuid目录拷过去  
  8. cp -r lib/uuid/    /usr/include/  

再次configure ,错误消失,于是执行 make


又报错:

[html] view plain copy
  1. libgearman/.libs/libgearman.so: undefined reference to `uuid_generate'  
  2. libgearman/.libs/libgearman.so: undefined reference to `uuid_unparse'  
  3. collect2: ld returned 1 exit status  

问题在网上找到了解决方法,就是重新编译e2fsprogs并加入参数

[html] view plain copy
  1. cd e2fsprogs-1.41.14  
  2. ./configure --enable-elf-shlibs  
  3. make  
  4. make install  
  5. cp -rf lib/libuuid.so* /usr/lib  
[plain] view plain copy
  1. cd gearmand-0.29  

  make clean

  ./confugure --prefix=/usr/local/gearmand

 make & make install

安装成功,此处最好重新configure,否则有可能还是报一样的错

 

2.安装php 的gearman 扩展

 (1)下载最新版本

   

[html] view plain copy
  1. wget http://pecl.php.net/get/gearman-1.0.2.tgz  
  2. tar -zxvf gearman-1.0.2.tgz  
  3. cd gearman-1.0.2  
  4. /usr/local/php/bin/phpize  
  5. ./configure   

但是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,护展安装成功

---------------------------------------

2、安装 gearman python API
     下载地址为
     http://pypi.python.org/packages/source/g/gearman/gearman-2.0.1.tar.gz
     下载完毕后,解压缩包
     tar xvzf  gearman-2.0.1.tar.gz
     然后进入目录gearman-2.0.1执行
     python setup.py install

3、启动gearmand
     启动命令如下:   
    ./gearmand -uroot -d -L 10.1.148.133 -p 7003