http://blog.csdn.net/aidenliu/article/details/7406390
本文操作系統環境:32位 fedora 15
1.安裝gearman job server
(1)下載最新版本gearmand:
- wget https://launchpad.net/gearmand/trunk/0.29/+download/gearmand-0.29.tar.gz
- tar -zxvf gearmand-0.29.tar.gz
- cd gearmand-0.29
- ./configure --prefix=/usr/local/gearmand
configure 過程中出現如下錯誤:
configure: error: cannot find Boost headers version >= 1.37.0
這是因爲boost的版本低於 1.37.0,需要安裝超過1.37.0的boost庫,用yum安裝比較簡單:yum install boost-devel.i686
還有網友提供的編譯安裝,我沒試過:
- wget http://cdnetworks-us-2.dl.sourceforge.net/project/boost/boost/1.44.0/boost_1_44_0.tar.gz
- tar xvzf boost_1_44_0.tar.gz
- 然後進入目錄boost_1_44_0執行
- ./bootstrap.sh --prefix=/usr/local/boost
- 生成bjam以後,再執行
- /bjam install
- 執行軟鏈接
- ln -s /usr/local/boost/include/boost/ /usr/local/include/boost
- ln -s /usr/local/boost/lib/libboost_program_options.so /usr/lib/libboost_program_options.so
安裝完成後,此問題解決。
重新configure 後,出現別的錯誤:fatal error: uuid/uuid.h: No such file or directory
這是因爲沒有uuid庫和頭文件,需要安裝e2fsprogs,試過yum命令安裝,問題沒解決,需要從源碼編譯
- wget http://downloads.sourceforge.net/e2fsprogs/e2fsprogs-1.41.14.tar.gz
- tar xvzf e2fsprogs-1.41.14.tar.gz
- 進入e2fsprogs-1.41.14目錄後執行
- /configure --prefix=/usr/local/e2fsprogs
- make
- make install
- 然後把uuid目錄拷過去
- cp -r lib/uuid/ /usr/include/
再次configure ,錯誤消失,於是執行 make
又報錯:
- libgearman/.libs/libgearman.so: undefined reference to `uuid_generate'
- libgearman/.libs/libgearman.so: undefined reference to `uuid_unparse'
- collect2: ld returned 1 exit status
問題在網上找到了解決方法,就是重新編譯e2fsprogs並加入參數
- cd e2fsprogs-1.41.14
- ./configure --enable-elf-shlibs
- make
- make install
- cp -rf lib/libuuid.so* /usr/lib
- cd gearmand-0.29
make clean
./confugure --prefix=/usr/local/gearmand
make & make install
安裝成功,此處最好重新configure,否則有可能還是報一樣的錯
2.安裝php 的gearman 擴展
(1)下載最新版本
- wget http://pecl.php.net/get/gearman-1.0.2.tgz
- tar -zxvf gearman-1.0.2.tgz
- cd gearman-1.0.2
- /usr/local/php/bin/phpize
- ./configure
但是configure 過程中報如下錯誤:
configure: error: Please install libgearman
yum install libgearman-devel.i686 libgearman.i686 後,此問題解決,卻出現另外一問題:
libgearman version 0.21 or later required
從錯誤信息來看,是libgearman-devel 的版本低於0.21所至,於是前往尋找版本較高的libgearman-devel
在此頁面找到libgearman-devel所以版本列表:http://fr2.rpmfind.net/linux/rpm2html/search.php?query=libgearman-devel&system=&arch=
結果是我的操作系統版本只支持0.14版本的。。。
看來在不重裝系統的前提下,只想到降低php gearman庫的版本了,從1.0.2版本試到0.8.0,終於搞定~
接下來make&make install 無問題發生
vim /usr/local/php/lib/php.ini 並添加gearman.so
重啓php-fpm
執行phpinfo,護展安裝成功
---------------------------------------
2、安裝 gearman python API
下載地址爲
http://pypi.python.org/packages/source/g/gearman/gearman-2.0.1.tar.gz
下載完畢後,解壓縮包
tar xvzf gearman-2.0.1.tar.gz
然後進入目錄gearman-2.0.1執行
python setup.py install
3、啓動gearmand
啓動命令如下:
./gearmand -uroot -d -L 10.1.148.133 -p 7003