ubuntu和CenterOS平台下搭建beanstalkd+uWSGI+Ngnix環境

來源:互聯網
上載者:User

此文安裝平台基於:

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()

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.