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