1. 程式人生 > 實用技巧 >Ubuntu下Gearman安裝搭建

Ubuntu下Gearman安裝搭建

>>> hot3.png

近階段一直在檢視專案裡所使用到的一些技術點,發現了gearman,於是就動手搞了下環境,下面是來自百度百科關於gearman的介紹:

Gearman是一個用來把工作委派給其他機器、分散式的呼叫更適合做某項工作的機器、併發的做某項工作在多個呼叫間做負載均衡、或用來在呼叫其它語言的函式的系統。

可用於sso 分發連線,但有弊端就是佔用系統資源較多,例如CPU、記憶體。

1.更新

sudo apt-get update

wget https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz

tar zxvf gearmand-1.1.12.tar.gz

cd gearmand-1.1.12/

./configure

configure: error: could not find boost

sudo apt-get install libboost-dev

接著重新執行:./configure

configure: error: Could not find a version of the library!

sudo apt-get install libboost-all-dev

接著重新執行:./configure

configure: error: could not find gperf

sudo apt-get install gperf*

接著重新執行:./configure

configure: error: Unable to find libevent

sudo apt-get install libevent-dev

接著重新執行:./configure

configure: error: Unable to find libuuid

安裝libuuid

這裡不能通過 sudo apt-get install 來安裝了,找不到,通過下面方式安裝

wget http://nchc.dl.sourceforge.net/project/libuuid/libuuid-1.0.3.tar.gz

sudo tar zxvf libuuid-1.0.3.tar.gz

cd libuuid-1.0.3/

./configure

沒有錯誤的情況下繼續

sudo make

sudo make install

接下來繼續上面的安裝

./configure

sudo make && make install

這裡要等一段時間。。

並沒安裝成功,繼續往下

sudo make clean (清除上次的make命令所產生的object檔案(字尾為“.o”的檔案)及可執行檔案。)

重新安裝

./configure

sudo make

sudo make install

貌似沒有錯誤,繼續

gearman

第一次執行會看到以下提示:

gearman: error while loading shared libraries: libgearman.so.8: cannot open shared object file: No such file or directory

(這表示系統不知道libgearman.so.8放在哪個目錄下。要在/etc/ld.so.conf中加入libgearman.so.8所在的目錄。檢查了下,檔案所在目錄為/usr/local/lib。因此出現這個問題的原因是libgearman.so.8剛生成,沒有加入到ld.so.cache中,所以這時需要重新執行一下/sbin/ldconfig( ldconfig命令的作用):)

sudo /sbin/ldconfig

此時再執行 gearman 則已安裝成功!

安裝完Job Server之後,用gearmand –d命令啟動

gearmand -d

第一次執行會看到以下提示:

gearmand: Could not open log file "/usr/local/var/log/gearmand.log", from "/home/wangyulu/下載/gearmand-1.1.12", switching to stderr. (No such file or directory)

在提示的目錄下建立好/log/gearmand.log檔案,再次執行上述命令,就正常啟動了job server。

sudo gearmand -d

到這裡就已經完全ok了

安裝PHP Gearman擴充套件

wget http://pecl.php.net/get/gearman-1.1.2.tgz

sudo tar zxvf gearman-1.1.2.tgz

cd gearman-1.1.2/

sudo phpize (這裡可能會提示沒有此命令,執行 sudo apt-get install php5-dev 安裝)

sudo ./configure

sudo make

sudo make install

sudo echo "extension=gearman.so" >> /etc/php5/apache2/php.ini (注意這裡php.ini位置)

sudo /etc/init.d/apache2 restart

這時檢視php_info時就應該看到 gearman擴充套件了

程式碼完成:

https://gist.github.com/andreaspag/6242671/archive/a66d18d191b880c1f8210deb612eb51b185f0892.zip

解壓後把裡面的檔案複製到相應目錄即可,如我是在用netbeans開發,我會把它放在

/usr/local/netbeans-8.1/php/phpstubs/phpruntime 這個目錄裡;

以下是安裝Job Server時的部分截圖

25180803_4QJM.png

25180803_Z1N7.png

25180803_OV0X.png

25180803_0LDs.png

25180803_HdOE.png

25180803_7PnU.png

PHP Gearman 擴充套件

25180803_d0ql.png

25180803_0iKG.png

Calabash+Gearman實現多手機同步測試機制http://www.linuxidc.com/Linux/2015-01/111587.htm

分散式的任務分發框架-Gearmanhttp://www.linuxidc.com/Linux/2015-01/111385.htm

使用supervisor監控Gearman任務的例子見:http://www.linuxidc.com/Linux/2015-01/111384.htm

通過Gearman實現MySQL到Redis的資料同步(非同步複製)http://www.linuxidc.com/Linux/2015-01/111380.htm

轉載於:https://my.oschina.net/hjchhx/blog/886067