一、安裝 Gearmanphp
首先,下載 Gearman 守護程序 gearmand 的最新源代碼(地址),解壓縮這個 tarball,並安裝(安裝須要 root 權限)。c++
$ wget https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz $ tar xvzf gearmand-1.1.12.tar.gz $ cd gearmand-1.1.12 $ ./configure $ make $ sudo make install
若是 configure 時,提示 configure: error: could not find boost,則須要先安裝 boost library:.net
$ yum install boost-devel
安裝 gearmand 後,構建 PHP 擴展。您能夠從 PECL 獲取這個 tarball(地址)。命令行
$ wget http://pecl.php.net/get/gearman-1.1.2.tgz $ tar xvzf gearman-1.1.2.tgz $ cd gearman-1.1.2
有了這些代碼後,就能夠開始構建擴展了:code
$ phpize $ ./configure $ make $ make install
若是 configure 時提示錯誤:configure: error: C preprocessor "/lib/cpp" fails sanity check,則須要安裝 c++ 編譯器相關 package:get
yum install glibc-headers yum install gcc-c++ yum install kernel-headers
這個 Gearman 守護程序一般被安裝在 /usr/sbin。能夠從命令行直接啓動此守護程序,也能夠將這個守護程序添加到啓動配置中,以便在機器每次重啓時就能夠啓動這個守護程序。
接下來,須要安裝 Gearman 擴展。打開 php.ini 文件(能夠經過 php --ini 命令快速找到這個文件),而後添加代碼行 extension = gearman.so:編譯器
$ php --ini //Loaded Configuration File: /etc/php/php.ini $ vi /etc/php/php.ini ... extension = gearman.so
保存此文件。要想驗證擴展是否啓用,請運行 php --info,而後查找 Gearman:it
$ php --info | grep gearman
此外,還能夠用一個 PHP 代碼片斷來驗證構建和安裝是否得當。將這個小應用程序保存到 verify_gearman.php:io
<?php print gearman_version() . "\n"; ?>
接下來,從命令行運行此程序:編譯
$ php verify_gearman.php //0.10
若是這個版本號與以前構建和安裝的 Gearman 庫的版本號相匹配,那麼系統就已準備好了。
而後啓動這個 agent,即 Gearman 守護程序:
$ gearmand -d
二、從 PHP 使用 Gearman
用 PHP 編寫的一個 Gearman worker。將這些代碼保存在一個名爲 worker.php 的文件中。
<?php $worker= new GearmanWorker(); $worker->addServer(); $worker->addFunction("title", "title_function"); while ($worker->work()); function title_function($job){ return ucwords(strtolower($job->workload())); } ?>
用 PHP 編寫的一個 producer,或 client。將此代碼保存在一個名爲 client.php 的文件內。
<?php $client= new GearmanClient(); $client->addServer(); print $client->do("title", "AlL THE World's a sTagE"); print "\n"; ?>
如今,能夠用以下的命令行鏈接客戶機與 worker 了:
$ php worker.php & $ php client.php All The World's A Stage $ jobs [3]+ Running php worker.php &