Ubuntu下Gearman安裝搭建
近階段一直在檢視專案裡所使用到的一些技術點,發現了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時的部分截圖
PHP Gearman 擴充套件
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