nginx 与 uwsgi 之上的 moinmoin

本文出自:http://www.huxun360.com/view_blog/33

准备

安装如下工具:css

nginxpython

uwsginginx

virtualenvweb

nginx和uwsgi搭建另外一篇文章:http://galean.blog.51cto.com/7702012/1302198浏览器

安装virtualenv,需先安装pip,pip能够很方便的安装、卸载和管理Python的包。bash

virtualenv则能够创建多个独立的虚拟环境,各个环境中拥有本身的python解释器和各自的package包,互不影响。virtualenv 工具可将你系统所安装的 python 程序抽离出来,放在一个特定的目录下,供 python 应用程序(例如本文所讲的 moinmoin)使用。这样即使系统中更换了 python 版本,也不会对已部署的 python 应用产生负面影响。服务器

pip和virtualenv能够很好的协同工做,同时使用这两个工具很是方便。python2.7

通常先安装pip,安装好后,pip install virtualenv就能够自动从网上下载并安装virtualenv了。而后virtualenv env1就能够建立一个名为env1的虚拟环境了,进入这个虚拟环境后,再使用pip install安装其它的package就只会安装到这个虚拟环境里,不会影响其它虚拟环境或系统环境。
socket

安装pip:ide

pip下载地址是:https://pypi.python.org/pypi/pip

下载后解压,

tar zxvf pip-1.4.1.tar.gz

cd pip-1.4.1

python setup.py install

安装:virtualenv

pip install virtualenv

若是出现:-bash: pip: command not found,找到pip可执行文件路径:

[root@htuidc ~]# find /* -name pip

/usr/local/python27/bin/pip

而后:

[root@htuidc ~]# /usr/local/python27/bin/pip install virtualenv

就能成功安装。

1、下载moinmoin 软件包

cd /data/web

wget http://static.moinmo.in/files/moin-1.9.7.tar.gz

tar zxvf moin-1.9.7.tar.gz

cd moin-1.9.7


2、安装 moinmoin:

######## 构建 python 的隔离环境

# mkdir -p /data/web/moinmoin

# virtualenv /data/web/moinmoin/python-env


######## 激活 python 隔离环境,并将 moinmoin 安装至其中

# cd /data/web/moin-1.9.7

# source /data/web/moinmoin/python-env/bin/activate

# python setup.py install


######## 将 moinmoin 的实例安装至 /data/web/moinmoin/wiki 目录

# cp -r ./wiki /data/web/moinmoin

# cd /data/web/moinmoin/wiki

# cp config/wikiconfig.py ./

# cp server/moin.wsgi ./


######## 关闭 python 隔离环境

# deactivate


完成上述步骤以后,能够发现,拜 virtualenv 工具所赐,全部与 moinmoin 相关的文件均被安装至 /var/www/moinmoin/python-env/share/moin 与 /var/www/moinmoin/python-env/lib/python2.7/site-packages/MoinMoin 目录,而本来它们默认是被安装至 /usr/share/moin 与 /usr/lib/python2.7/site-packages/MoinMoin 目录。


3、配置 nginx:


server {

listen 80;

server_name localhost;


location ^~ /wiki {

include uwsgi_params;

uwsgi_pass 127.0.0.1:8630;

uwsgi_param UWSGI_PYHOME /data/web/moinmoin/python-env/;

uwsgi_param UWSGI_CHDIR /data/web/moinmoin/wiki/;

uwsgi_param UWSGI_SCRIPT moin_wsgi;

uwsgi_param SCRIPT_NAME /wiki;

uwsgi_modifier1 30;

}


location ^~ /wiki/moin_static/ {

alias /data/web/moinmoin/python-env/lib/python2.7/site-packages/MoinMoin/web/static/htdocs/;

add_header Cache-Control public;

expires 1M;

}

location = /favicon.ico {

log_not_found off;

}

}

下面,大体分析一下上述代码的工做过程。

若是网页浏览器传入的请求是“192.168.0.2/wiki”,那么 nginx 会根据 "location ^~ /wiki" 代码段的设定主要进行如下处理:

加载 /etc/nginx 目录中的“uwsgi_params.conf”文件;

经过 127.0.0.1:8630与 uwsgi 服务器通讯,相似于进程管道;

设置 python 运行环境,这里使用的是上文中 virtualenv 工具所构造的 python 目录,其中包含着 python 程序自己以及上文中所安装的 moinmoin 软件包;

设置 uwsgi 服务器在相应 http 请求(http://192.168.0.7)以前,先进入 /data/web/moinmoin/wiki 目录,这个目录是前文中咱们创建的 moinmoin 实例;

设置 uwsgi 服务器要运行的 python 程序,即 moin.wsgi;

设置 uwsgi 服务器所运行的 python 程序对应的 http 请求为 http://192.168.0.7/wiki。


4、配置 uwsgi:


若是但愿直接在命令行中启动 uwsgi,那么只需使用如下命令便可:

uwsgi -x /etc/uwsgi/uwsgi.xml

固然,这须要在 /etc/uwsgi 目录中创建 uwsgi 的配置文件 uwsgi.xml,内容以下:

<uwsgi>

<socket>/tmp/wiki.sock</socket>

<limit-as>256</limit-as>

<processes>6</processes>

<memory-report/>

<vhost/>

<no-site/>

</uwsgi>


5、打开http://192.168.0.7/wiki

155502687.png


若是出现网页没有图片和css样式的显示问题,请检查网页源码中引用CSS的路径是否是不存在(查看方法:网页中右击,选择"查看源码"),而后根据状况修改 location ^~ /wiki/moin_static/ 的alias路径和moinwiki模板跟目录wikiconfig.py配置文件中的url_prefix_static的值,直到正确显示为止。

相关文章
相关标签/搜索