gearman mysql 扩展_Centos安装Gearman及其php扩展

安装Gearman

========================================================

向一个机器添加Gearman需要两步:

1.构建并启动这个守护进程(gearmand)

2.构建与php版本相匹配的PHP扩展。

========================================================

安装gearmand

========================================================

我安装版本是gearmand 1.1.12:

1. 首先安装依赖包:

sudo yum -y install autoconf bison flex libtool libboost-all-dev libcurl4-openssl-dev curl libevent-dev uuid-dev libsqlite3-dev libmysqlclient-dev mysql-devel

2.下载Gearmand版本

在https://launchpad.net/gearmand下载最新版本

3.解压、编译、安装源码包

tar xvzf gearmand-1.1.12.tar.gz

cd gearmand-1.1.12

./configure

make

make install

注:这个过程中可能无法编译成功,而且几率很大,我安装的时候出现各种问题,但主要都是缺少共享库,这时候要根据个人实际情况,看它报的是什么错,然后根据报错,更新或者安装共享库。

sudo yum install ***等。

4.为大多数最新的共享库创建必须的链接和缓存。其中可能报:

error: gearman: error while loading shared libraries: libgearman.so.8: cannot open shared object file: No such file or directory

解决办法:sudo ldconfig,我安装的时候就出现了这种情况,一开始不知道怎么回事,百度了很久才找到这个方法。

安装php 的gearman 扩展

========================================================

下载最新版本:

$ wget http://pecl.php.net/get/gearman-1.1.1.tgz

$ tar zxvf gearman-1.1.1.tgz

$ cd gearman-1.1.1/

$ phpize

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

$ make

$ make install

6. 在php.ini文件末尾添加"extension=gearman.so"

7. 检测扩展是否安装成功

$ php --info | grep "gearman support"

gearman support => enabled

显示出:gearman support => enabled,就表示安装成功啦。

测试

========================================================

1)sudo ldconfig

2)启动gearmand: gearmand -d &

这一步可能会遇到:

启动这个 agent,即 Gearman 守护程序:

/usr/local/sbin/gearmand --daemon

报错:Could not open log file "/usr/local/var/log/gearmand.log", from "/usr/sbin", switching to stderr. (No such file or directory)

解决:

mkdir -p /usr/local/var/log/

cd /usr/local/var/log/

touch gearmand.log

再次尝试启动:

/usr/local/sbin/gearmand --daemon

成功运行.查看进程:ps -ef | grep gearmand

root     19390     1  0 17:50 ?        00:00:00 gearmand --daemon

root     19403     1  0 17:54 ?        00:00:00 /usr/local/sbin/gearmand --daemon

root     19406  1556  0 17:54 pts/3    00:00:00 grep gearmand

3)查看gearmand是否在运行:ps aux | grep [g]earmand

4)检查germand的任务检测端口4730:sudo lsof -i tcp:4730

例子:从PHP使用Gearman

=====================================================

从 PHP 使用 Gearman 类似于之前的示例,惟一的区别在于这里是在 PHP 内创建 producer 和 consumer。

每个 consumer 的工作均封装在一个或多个 PHP 函数内。

先用 PHP 编写的一个 Gearman worker。将这些代码保存在一个名为 worker.php 的文件中。

$worker= new GearmanWorker();

$worker->addServer();

$worker->addFunction("title", "title_function");

while ($worker->work());

function title_function($job)

{

return ucwords(strtolower($job->workload()));

}

?>

再用 PHP 编写的一个 producer,或 client。将此代码保存在一个名为 client.php 的文件内。

$client= new GearmanClient();

$client->addServer();

print $client->do("title", "All The World's a stage!");

print "\n";

?>

现在,可以用如下的命令行连接客户机与 worker 了:

php worker.php &

php client.php

结果:

All The World's a stage!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值