Ответ 1
Введите php --ini
в командной строке, чтобы узнать, какой php.ini использует ваш CLI CLI. Убедитесь, что в этом php.ini включен Gearman.
Я недавно установил ресивер на ubuntu 10.04 и установил его расширение. Теперь, когда я запускаю php файл в браузере, который содержит:
$client = new GearmanWorker();
die(var_Dump($client));
Я получаю object(GearmanWorker)#1 (0) { }
но при запуске реального файла рабочего файла в терминале (от 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.ini использует ваш CLI CLI. Убедитесь, что в этом 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 теперь.
Установите сервер задания передач и libgearman
apt-get install gearman-job-server libgearman-dev
Установите расширение pecl
apt-get install php-pear php5-dev pecl install gearman
Откройте правильный файл php.ini и добавьте extension=gearman.so
в конец.