GearmanClient :: do():send_packet(GEARMAN_COULD_NOT_CONNECT)在php shell_exec中失败

时间:2014-04-25 07:14:50

标签: php centos shell-exec gearman

我正在尝试从php shell_exec运行gearman客户端,但它总是抛出以下错误GearmanClient :: do():send_packet(GEARMAN_COULD_NOT_CONNECT)无法发送服务器选项数据包 - > libgearman / connection.cc:485/var/www/html/client.php

但是如果我从终端运行它然后它工作但不是从php shell_exec。甚至我在addServer方法中传递了服务器名称和端口

我正在使用centos 6.2。

Client.php

       $client= new GearmanClient();  
       $client->addServer('127.0.0.1',4730);
       print $client->do("reverse","Testing");

worker.php

      $worker= new GearmanWorker();
      $worker->addServer("127.0.0.1",4730);
      $worker->addFunction("reverse", "my_reverse_function");
      function my_reverse_function($job)
      {
        return strrev($job->workload());
      }

1 个答案:

答案 0 :(得分:0)

确保已安装齿轮箱包。或者根据需要手动安装。有时升级您的系统可能会导致您的软件包丢失。

请按照此处http://gearman.org/getting-started/

中所述,在调试模式下检查或启动它
gearmand -vvv

然后启动它在后台运行

gearmand -d

我读过其他问题,这些问题从

改变了
$woker->addServer('127.0.0.1',4730);

$worker->addServer('127.0.0.1:4730');

$client->addServer('127.0.0.1',4730);

的情况相同