Gearman,PHP的扩展问题:类'GearmanWorker'没有发现..使用terminal,但在浏览器上工作

我最近在Ubuntu 10.04上安装了gearman,并安装了pecl扩展。 现在,当我在浏览器中运行一个PHP文件,其中包含:

$client = new GearmanWorker(); die(var_Dump($client)); 

我得到object(GearmanWorker)#1 (0) { }

但是当在terminal(通过root)运行一个真正的工作文件时,我得到这个:

 sudo php worker.php PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/imagick.ini on line 1 in Unknown on line 0 PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/mcrypt.ini on line 1 in Unknown on line 0 PHP Warning: Module 'pcntl' already loaded in Unknown on line 0 PHP Fatal error: Class 'GearmanWorker' not found in /home/ME/public_html/try/worker.php on line 3 

工人代码:

 #!/usr/bin/php <?php $worker= new GearmanWorker(); $worker->addServer('127.0.0.1'); $worker->addFunction("reverse", "reverse_fn"); while (1) { print "Waiting for job...\n"; $ret = $worker->work(); if ($worker->returnCode() != GEARMAN_SUCCESS) break; } function reverse_fn ($job) { $workload = $job->workload(); echo "Received job: " . $job->handle() . "\n"; echo "Workload: $workload\n"; $result = strrev($workload); for ($i = 1; $i <= 10; $i ++) { $job->status($i, 10); sleep(1); } echo "Result: $result\n"; return $result; } 

请帮忙!

在命令提示符下键入php --ini ,查看PHP CLI使用哪个php.ini。 确保在该php.ini中启用Gearman。

使用locate php.ini在我的Ubuntu的笔记本电脑显示2结果:

 /etc/php5/apache2/php.ini /etc/php5/cli/php.ini 

将两个extension=gearman.so添加到2个php.ini文件中,然后重新启动php和gearmand。

  1. 安装减速机作业服务器和libgearman

    apt-get install gearman-job-server libgearman-dev

  2. 安装pecl扩展

    apt-get安装php-pear php5-dev pecl安装gearman

  3. 打开正确的php.ini文件,并在最后添加extension=gearman.so