Friday, 22 March 2013

Cài đặt Gearman và gearman extension cho PHP

Gearman -> http://vi.wikipedia.org/wiki/Gearman

TUT trên:
Description:    Ubuntu 12.04.1 LTS
Release:        12.04
Codename:       precise
I. Cài đặt Gearman:
Thêm vào source list:
$ sudo echo "deb http://ppa.launchpad.net/gearman-developers/ppa/ubuntu `lsb_release -c | awk {'print $2'}` main" > /etc/apt/sources.list.d/gearman.list
$ cat /etc/apt/sources.list.d/gearman.list 
$ sudo vim /etc/apt/sources.list
và thêm vào 2 dòng sau:


deb http://ppa.launchpad.net/gearman-developers/ppa/ubuntu precise main
deb-src http://ppa.launchpad.net/gearman-developers/ppa/ubuntu precise main

Chú ý precise là codename của bản Ubuntu mình đang dùng.
12.10 là quantal, các bản khác Google nhé...

Rồi chạy:
$ sudo apt-get update
Cài 2 gói nữa:
sudo apt-get install php-pear php5-dev 

php-pear (pear + pecl ) là trình quản lý các extensions cho php.
PEAR (PHP Extension and Application Repository) là thư viện chứa extension cho php. kho chứa các ứng dụng và phần mở rộng cho php
PECL (PHP Extension C Library) các thư viện C mở rộng cho PHP

Chạy 2 lệnh để khai báo vị trí file php.ini cho pear và pecl.

pear config-set php_ini /etc/php5/apache2/php.ini
pecl config-set php_ini /etc/php5/apache2/php.ini

Rồi bắt đầu cài gearman server:
$ sudo apt-get install gearman-job-server libgearman-dev

II. Gearman PHP Extension
$ sudo pecl install gearman

Nếu thành công terminal sẽ phun ra:
Build complete.
Don't forget to run 'make test'.

running: make INSTALL_ROOT="/tmp/pear/temp/pear-build-rootp7K043/install-gearman-1.1.1" install
Installing shared extensions:     /tmp/pear/temp/pear-build-rootp7K043/install-gearman-1.1.1/usr/lib/php5/20090626+lfs/
running: find "/tmp/pear/temp/pear-build-rootp7K043/install-gearman-1.1.1" | xargs ls -dils
182432   4 drwxr-xr-x 3 root root   4096 Mar 22 15:22 /tmp/pear/temp/pear-build-rootp7K043/install-gearman-1.1.1
292145   4 drwxr-xr-x 3 root root   4096 Mar 22 15:22 /tmp/pear/temp/pear-build-rootp7K043/install-gearman-1.1.1/usr
292146   4 drwxr-xr-x 3 root root   4096 Mar 22 15:22 /tmp/pear/temp/pear-build-rootp7K043/install-gearman-1.1.1/usr/lib
292147   4 drwxr-xr-x 3 root root   4096 Mar 22 15:22 /tmp/pear/temp/pear-build-rootp7K043/install-gearman-1.1.1/usr/lib/php5
292148   4 drwxr-xr-x 2 root root   4096 Mar 22 15:22 /tmp/pear/temp/pear-build-rootp7K043/install-gearman-1.1.1/usr/lib/php5/20090626+lfs
292149 224 -rwxr-xr-x 1 root root 225704 Mar 22 15:22 /tmp/pear/temp/pear-build-rootp7K043/install-gearman-1.1.1/usr/lib/php5/20090626+lfs/gearman.so

Build process completed successfully
Installing '/usr/lib/php5/20090626+lfs/gearman.so'
install ok: channel://pecl.php.net/gearman-1.1.1

Bạn thêm dòng sau:
extension=gearman.so
vào file php.ini trong cli để dùng trong môi trường php cli, bằng:
$ sudo vim /etc/php5/cli/php.ini
$ sudo restart apache2 restart
Để restart apache

Test kết quả thành công nếu:
$ php --ri gearman

gearman

gearman support => enabled
extension version => 1.1.1
libgearman version => 1.0.4
Default TCP Host => localhost
Default TCP Port => 4730
Còn không có bạn compile  bằng tay vậy:

$ cd ~
$ wget http://pecl.php.net/get/gearman
$ tar -zxf gearman
$ cd gearman-X.X
$ phpize
$ ./configure
$ sudo make && sudo make install

Cuối cùng thành công cũng sẽ báo:
Installing '/usr/lib/php5/20090626+lfs/gearman.so'
install ok: channel://pecl.php.net/gearman-1.1.1

Nếu trong lúc compile thiếu gói nào bạn sudo apt-get install để cài thêm.
Test lại phpinfo như trên.
Kết quả test trên console:

$ php -a
Interactive shell

php > print gearman_version();
1.0.4
php >

Vậy là đã cài đặt Gearman Server + Gearman PHP Extension thành công.