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

此文安装平台基于:

Ubuntu Server_10.04_LTS版

CentOS Linux release 6.0 (Final)

需要搭建的平台有:

Python

Nginx

uWSGI

Beanstalkd

建议使用阅读模式来浏览此文

注意事项:安装此次环境部分操作需要有root权限、通常操作目录为当前用户的home目录、而且系统需要有gcc、gcc-c++编译器、还有一点、请保留安装文件、万一某天想卸载掉某个软件、可以进入安装目录执行(root权限)、

sudo make uninstall

由于大多数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服务端、

如果此条命令也无报错、证明客户端已经成功连接上了服务端、如果迩是在其它客户端去连接服务器的话、只需要先知道服务器的ip、比如服务器的ip是192.168.0.142那么把localhost替换掉就可以了、下面可以执行正常的操作或退出python控制台、exit()