此文安裝平台基於:
Ubuntu Server_10.04_LTS版
CentOS Linux release 6.0 (Final)
需要搭建的平台有:
Python
Nginx
uWSGI
Beanstalkd
建議使用閱讀模式來瀏覽此文
注意事項:安裝此次環境部分操作需要有root許可權、通常操作目錄為目前使用者的home目錄、而且系統需要有gcc、gcc-c++編譯器、還有一點、請保留安裝檔案、萬一某天想卸載掉某個軟體、可以進入安裝目錄執行(root許可權)、
sudo make uninstall
一、Python
由於大多數Linux平台都已具備了Python環境、所以無需安裝、直接使用、此版Ubuntu內建Python2.6版本
二、Nginx
然後是安裝Nginx、到目前為止最新的穩定版本為1.0.10、
執行以下命令
wget http://nginx.org/download/nginx-1.0.10.tar.gz
tar –zxf nginx-1.0.10.tar.gz
cd nginx-1.0.10
./configure
make
sudo make install
另外安裝過程中./configure的資訊是必須要看一下的、如果configure的資訊錯誤了、那麼後兩步是執行不了的、而且congiure的錯誤資訊也是造成make錯誤的根源、比如如果系統缺乏了pcre庫、make過程中會報錯、這時要跑回./configure的錯誤資訊查看是沒安裝的pcre組件、如果沒裝這個組件就自行google安裝吧、wget下來執行源碼安裝三步曲就可以了、如果再出錯再看看有什麼包沒安裝吧、所以一句話、./configure解決後、後兩步都沒什麼問題、如果是make和make install有問題、那問題肯定就是出在c或者c++的編譯器沒裝好或者設定好
另一種方式是交由Nginx安裝程式統一編譯源碼包、比如缺乏了pcre和zlib的包、邇需要把源碼包下回來、然後解壓後、在./configure的參數中指定它的解壓目錄就可以了、注意、不需要自行編譯安裝pcre和zlib、因為待會Nginx會自行對它們統一進行編譯和安裝、命令如下
./configure \
--prefix=/www/xres/app/nginx-1.0.10 \
--with-pcre=/www/xres/app/install_files/pcre-8.12 \
--with-zlib=/www/xres/app/install_files/zlib-1.2.5
P.S:“\”反斜線作用為分隔字元、可以一條命令寫完、是非必要命令
安裝nginx過程中、如果邇未使用—prefix=DIR命令自行指定目錄、那麼預設的安裝目錄就是/usr/local/nginx、那麼要再把運行檔案加去系統的環境變數才能使用、執行
sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
這下就OK了、執行sudo nginx就可以啟動nginx服務了、注意要使用root許可權、而且請確認指定連接埠未被其它程式佔用了、預設nginx的服務連接埠是80、如果邇還有其它的web伺服器如Apache之類的可能會佔用80連接埠導致無法啟動、請把這些服務停止或者更改nginx的連接埠為其它非80連接埠、
最後驗證一下nginx是否已經啟動、如果是本地測試開啟瀏覽器輸入http://localhost:80出現nginx的歡迎介面就是已經OK咯、如果邇以後想修改nginx的設定檔、請到Nginx的安裝目錄下去修改、預設的安裝目錄是/usr/local/nginx/conf/nginx.conf去修改、注意修改前先備份設定檔、以防不測
三、uWSGI
由於Nginx從0.8.40版本開始、就開始支援了uWSGI、如果邇使用的是低於此版本的Nginx、也有補丁uWSGI可用、不過鑒於版本太舊問題比較多、最穩妥的方式是儘快升級您的Nginx版本、如果邇的機器已經安裝了python的pip包管理工具、那麼簡單的執行以下命令便可以完成安裝
pip install uwsgi
如果邇沒有安裝pip先安裝一下它吧、注意安裝pip需要root許可權
sudo apt-get install pip
如果邇不是Ubuntu作業系統、那就麻煩狠多、
首先需要下載pip的源碼包
wget \ http://pypi.python.org/packages/source/p/pip/pip-1.0.2.tar.gz#md5=47ec6ff3f6d962696fe08d4c8264ad49
解壓後進入目錄執行
python setup.py install
P.S.:如果報錯不能匯入setuptools包、那麼就需要先安裝一個setuptools包
可以進入這個頁面找到邇自己系統對應的python版本
http://pypi.python.org/pypi/setuptools#installation-instructions
比如邇的python版本是2.6、那麼對應的就是
wget \ http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg#md5=bfa92100bd772d5a213eedd356d64086
接著執行以下命令便 完成了setuptools的安裝過程了、然後再重試安裝pip工具
sudo sh setuptools-0.6c11-py2.6.egg
如果邇的機器沒有pip工具又不想安裝pip的話、可以使用源碼安裝的方式、首先下載最新LTS版源碼包
wget http://projects.unbit.it/downloads/uwsgi-lts.tar.gz
tar –zxf uwsgi-lts.tar.gz
然後進入目錄執行make命令便可以了、如果執行make命令遇到報錯、如缺乏Python.h這樣的庫、那麼便需要安裝上Python-dev等相依元件、可以使用yum或者apt-get等軟體管理工具來安裝、
centerOS:
sudo yum install libxml2* python-dev*
Ubuntu:
sudoapt-get install build-essential python-dev libxml2-dev
最後測試一下邇的uWSGI是否已經正常安裝吧、首先建一個python檔案test_uwsgi.py、輸入
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return "Hello World"
然後執行命令
./uwsgi --http :9090 --wsgi-file test_uwsgi.py
P.S.:如果邇是使用pip安裝的話、則執行這條命令
uwsgi --http :9090 --wsgi-file test_uwsgi.py
如果成功啟動無報錯、再啟動相應瀏覽器開啟看看是否正常顯示”Hello World”、本地瀏覽的話地址是http://localhost:9090、如果已經正常的顯示、那麼就是已經成功的安裝了uWSGI了
四、beanstalkd
然後是安裝Beanstalkd、beanstalk是一個非常簡潔高效的queue、安裝這個分服務端和用戶端、
1、服務端
首先來安裝服務端、不過在安裝beanstalkd之前需要做些準備工作先
由於beanstalkd需要有libevent庫的支援、所以如果環境沒有內建還需要先安裝libevent、
而且beanstalkd目前還對libevent的支援版本有限制、僅支援1.4.1以上和2.0以下的版本、
不能裝得太高也不能太低、然後從官網看來、最新的1.4.x版本是1.4.14b-stable、莪們此次就使用這個版本吧、執行
wget https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz
然後解壓
tar –zxf libevent-1.4.14b-stable.tar.gz
然後進入解壓目錄執行安裝、此處執行make install命令要求root許可權
./configure
make
sudo make install
然後再來安裝beanstalkd吧、目前最新版本為1.4.6、在終端執行以下命令下載beanstalkd伺服器端源碼
wget https://github.com/downloads/kr/beanstalkd/beanstalkd-1.4.6.tar.gz
tar –zxf beanstalkd-1.4.6.tar.gz
cd beanstalkd-1.4.6/-
./configure
make
sudo make install
同樣make install需要root許可權、安裝完成後試著啟動一下beanstalkd、
beanstalkd -l 127.0.0.1 -p 14711 &
如果是centerOS的話、則需要去到安裝目錄的bin目錄下執行./beanstalkd
./beanstalkd -l 127.0.0.1 -p 14711
(以下在centerOS執行效果同上)
此命令要求beanstalkd在後台啟動一個服務、如果無報錯、那麼成功了一半、不過這樣的話只能由本機來串連、如果想要使得其它用戶端想串連它的話、應該執行這條命令、
beanstalkd –d –p 14711
2、用戶端
然後是安裝beanstalkd的用戶端、莪們此處選擇的是beanstalkc、基本python寫的一個beanstalkd的用戶端、安裝用戶端是比較簡單的了使用Python的包管理軟體pip就可以了、
安裝好pip之後再安裝beanstalkc就可以了
sudo pip install beanstalkc
同樣也是需要root的、 在開始使用beanstalkc用戶端執行串連之前、請確保本地Python已經安裝了PyYAML組件、如果尚未安裝請執行
sudo pip install PyYAML
ok、這麼樣就大功靠成了、測試一下用戶端安裝成功沒有、
啟動python控制台
python
匯入beanstalkc的包
>>> import beanstalkc
如果無報錯、那麼beanstalkc的python用戶端就是已經成功安裝好了
接著輸入
>>> beanstalk = beanstalkc.Connection(host='localhost', port=14711)
此條命令輸入之前必須確保剛才啟動了beanstalkd服務端、
如果此條命令也無報錯、證明用戶端已經成功串連上了服務端、如果邇是在其它用戶端去串連伺服器的話、只需要Crowdsourced Security Testing道伺服器的ip、比如伺服器的ip是192.168.0.142那麼把localhost替換掉就可以了、下面可以執行正常的操作或退出python控制台、exit()