下载gearman-0.8.0.tgz并安装
#cd /opt/build/ #wget http://pecl.php.net/get/gearman-0.8.0.tgz # yum install -y libgearman-devel.x86_64 # yum install -y re2c #tar zxf gearman-0.8.0.tgz #cd gearman-0.8.0.tgz #phpize # ./configure # make && make install2.编辑php.ini配置文件加载相应模块并使之生效 # vim /etc/php.ini extension = "gearman.so"3.查看gearman.so模块是否加载 # php --info | grep gearman gearman gearman support => enabled libgearman version => 0.14 PWD => /opt/build/gearman-0.8.0 _SERVER["PWD"] => /opt/build/gearman-0.8.0 # php -m | grep gearman gearman4.启动jobgearmand -d如果当前用户是 root 的话,则需要这样操作:gearmand -d -u root缺省会使用 4730 端口,下面会用到。 注意:如果找不到 gearmand 命令的路径,别忘了用 whereis gearmand 确认[client -- 172.16.1.181] 安装如work同。如上所示。三、测试:[Job Server (gearmand) -- 172.16.1.183]启动gearmand以命令行工具来验证gearman的功能启动 Worker:gearman -h 172.16.1.183 -w -f wc -- wc -l &运行Client:gearman -h 172.16.1.183 -f wc < /etc/passwd42可以看到验证成功。以php验证gearman的功能编写 Workerworker.php 文件内容如下:<?php$worker= new GearmanWorker();$worker->addServer('172.16.1.183', 4730);$worker->addFunction('reverse', 'my_reverse_function');while ($worker->work());function my_reverse_function($job) { return strrev($job->workload());}?>设置后台运行 workphp worker.php &编写 Clientclient.php 文件内容如下:<?php$client= new GearmanClient();$client->addServer('172.16.1.183', 4730);echo $client->do('reverse', 'Hello World!'), "\n";?>运行 clientphp client.php输出:!dlroW olleHQ:I've been trying to get Gearman compiled on CentOS 5.8 all afternoon. Unfortunately I am restricted to this version of CentOS by my CTO and how he has our entire network configured. I think it's simply because we don't have enough resources to upgrade our network... But anyways, the problem at hand.I have searched through Server Fault, Stack Overflow, Google, and am unable to locate a working solution. What I have below is stuff I have pieced together from my searching.Searches have told said to install the following via yum:yum -y install --enablerepo=remi boost141-devel libgearman-devel e2fsprogs-devel e2fsprogs gcc44 gcc-c++ To get the Boost headers working correctly I did this:cp -f /usr/lib/boost141/* /usr/lib/ cp -f /usr/lib64/boost141/* /usr/lib64/ rm -f /usr/include/boost ln -s /usr/include/boost141/boost /usr/include/boost With all of the dependancies installed and paths setup I then download and compile gearmand-1.1.2 just fine.wget -O /tmp/gearmand-1.1.2.tar.gz https://launchpad.net/gearmand/1.2/1.1.2/+download/gearmand-1.1.2.tar.gz cd /tmp && tar zxvf gearmand-1.1.2.tar.gz ./configure && make -j8 && make install That works correctly. So now I need to install the Gearman library for PHP. I have attempted through PECL and downloading the source directly, both result in the same error:checking whether to enable gearman support... yes, shared not found configure: error: Please install libgearman What I don't understand is I installed the libgearman-devel package which also installed the core libgearman. The installation installs libgearman-devel-0.14-3.el5.x86_64, libgearman-devel-0.14-3.el5.i386, libgearman-0.14-3.el5.x86_64, and libgearman-0.14-3.el5.i386.Is it possible the package version is lower than what is required? I'm still poking around with this, but figured I'd throw this up to see if anyone has a solution while I continue to research a fix.Thanks!A:This should do the trick:export GEARMAN_LIB_DIR=/usr/include/libgearman export GEARMAN_INC_DIR=/usr/include/libgearman That should work, if not you'll have to do some minor edits to config.m4.