安裝如下工具: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的值,直到正確顯示爲止。