近階段一直在查看項目裡所使用到的一些技術點,發現了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 擴展