11

最近ubuntu10.04にgearmanをインストールし、pecl拡張機能をインストールしました。さて、ブラウザで次のようなphpファイルを実行すると:

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

私は得るobject(GearmanWorker)#1 (0) { }

しかし、ターミナルで(ルートによって)実際のワーカーファイルを実行すると、次のようになります。

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;
}

助けてください!

4

3 に答える 3

14

php --iniコマンドプロンプトで入力して、PHP CLI が使用する php.ini を確認します。php.ini で Gearman が有効になっていることを確認します。

于 2011-09-15T08:57:12.000 に答える
3

私のubuntuラップトップで使用locate php.ini すると、2つの結果が表示されます:

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

両方extension=gearman.soを2つのphp.iniファイルに追加してから、phpとギアマンドを再起動してください。

于 2016-10-14T15:45:30.833 に答える
2
  1. Gearman ジョブ サーバーと libgearman をインストールします。

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

  2. pecl 拡張機能をインストールする

    apt-get インストール php-pear php5-dev pecl インストール ギアマン

  3. 正しい php.ini ファイルを開き、extension=gearman.so最後に追加します。

于 2015-06-01T22:44:39.127 に答える