2011-09-15 23 views
10

Yakın bir tarihte ubuntu 10.04 'te dişli takımı kurdum ve pecl uzantısını kurdum. Ben tarayıcıda bir php dosyası çalıştırdığınızda Şimdi içerdiğini:Gearman, php eklenti problemi: 'GearmanWorker' sınıfı, terminalde bulunamadı ancak tarayıcıda çalışıyor

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

Ben object(GearmanWorker)#1 (0) { }

olsun ama (root olarak) terminalde gerçek işçi dosyasını çalıştırırken, bu alın:

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 

işçi kodu:

#!/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; 
} 

yardım edin!

+0

Hem varyasyon hem de CGI ile var_dump (get_include_path()) yapın. Farklı olabilirler. – chelmertz

+0

üzgünüm, ne demek istediğimi anlamıyorum ama php apache modülü –

+0

olarak yüklüyorsun, aslında sanal panel kullanılarak yüklendim –

cevap

13

PHP CLI'inizin hangi php.ini dosyasını kullandığını görmek için komut istemine yazın. php --ini. Gearman'ın bu php.ini dosyasında etkin olduğundan emin olun.

1
  1. Gearman iş sunucusu ve libgearman

    apt-get Gearman-iş-sunucu libgearman-dev

  2. pecl uzantıya yükleyin yüklemek

    apt-get install php-armut yükleyin php5-dev pecl kuruluş kodunu yükleyin

  3. Doğru php.ini dosyasını açın veekleyinsonunda.

2

kullanarak ubuntu dizüstü gösterisinde locate php.ini 2 sonuç:

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

sonra hem extension=gearman.so 2 içine php.ini dosyasını eklemek php yeniden başlatın ve şimdi çalışıyor gearmand.