2011-09-15 3 views
10

私は最近、ubuntu 10.04にgearmanをインストールし、それにpecl拡張機能をインストールしました。今、私が含まれているブラウザでのPHPファイル実行すると、:Gearman、php extensionの問題:クラス 'GearmanWorker'がターミナルを使用していますがブラウザで動作します

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

助けてください!

+0

CLIとCGIの両方で 'var_dump(get_include_path())'を実行します。彼らは違うかもしれません。 – chelmertz

+0

申し訳ありませんが、何を意味するのか分かりませんが、apchaeモジュールとしてphpをインストールしています –

+0

実際にはvirtualminパネルを使用してインストールされています –

答えて

13

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

1
  1. がgearmanジョブサーバーとlibgearmanをインストール

    apt-getをインストールgearmanジョブサーバlibgearman-devの

  2. PECL拡張モジュールをインストールし

    のphp-梨をインストールapt-getをphp5-dev pecl install gearman

  3. 正しいphp.iniファイルを開き、を追加してください最後に。私のUbuntuのラップトップショーでlocate php.ini を使用して

2

2つの結果:

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

両方extension=gearman.so 2へのphp.iniファイル を追加し、今取り組んでPHPとgearmandを再起動します。

関連する問題