python web 环境配置,差点吐血

admin
2012-08-25 / 0 评论 / 237 阅读 / 正在检测是否收录...

准备弄个python环境,搞搞python程序玩玩。差点吐血,文档奇少,百度,google基本上都是复制的。只好自己一点一点摸索了。

简单总结下吧,具体的实在是记不住了,不知道打了多少命令。想想还是对python这门语言不熟悉,以前用python写过个小脚本,用来刷免费电话,代码写的挺烂的,但是确实比php写的脚本稳定迅速。而且基本上不出错。可见python语言比php 严谨多了。言归正传吧。

这次目的是是nginx 支持python

选择的fastcgi 是uwsgi。据说可以和php的fastcgi 一样简单。实际是功能太强大,理解起来很费劲。

1:安装python 和python 开发包。

apt-get install python
apt-get install python-dev libxml2-dev

2:安装uwsgi

wget http://projects.unbit.it/downloads/uwsgi-1.2.5.tar.gz
tar xzvf uwsgi-1.2.5.tar.gz 
cd uwsgi-1.2.5
python uwsgiconfig.py --build
cp ./uwsgi /usr/sbin/uwsgi
cp ./nginx/uwsgi_params /etc/nginx/

3 :幸运的是linode 提供了debian6下的uwsgi启动脚本 。不过需要修改哦

cd /opt/
wget -O init-deb.sh http://library.linode.com/assets/683-uwsgi-init-deb.sh
mv /opt/init-deb.sh /etc/init.d/uwsgi
chmod +x /etc/init.d/uwsgi
/usr/sbin/update-rc.d -f uwsgi defaults
/etc/init.d/uwsgi start

 

贴出我的,自己看着改

PATH=/opt/uwsgi:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/uwsgi

OWNER=www-data 

NAME=uwsgi
DESC=uwsgi

test -x $DAEMON || exit 0

# Include uwsgi defaults if available
if [ -f /etc/default/uwsgi ] ; then
        . /etc/default/uwsgi
fi

set -e

DAEMON_OPTS="-s /var/run/www/uwsgi.sock -M 4 -t 30 -A 4 -p 2 -d /var/log/uwsgi.log --pythonpath $PYTHONPATH --module $MODULE"

 

附上配置文件 。设置python 目录,和运行模块名,按实际情况设置就行了。貌似模块名影响不大。

PYTHONPATH=/var/www/Blog
MODULE=t

 

4:修改nginx 。我是新建个配置文件,然后再nginx配置文件里包含就行了

location ~ \.py$ {
   uwsgi_pass unix:/var/run/www/uwsgi.sock;
   include /etc/nginx/uwsgi_params;
}

5:重启nginx uwsgi

6:新建个py测试下。一定按我的格式来,要不会出错。

mport os
import sys
def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'
    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)
    return output

7:完毕了,你们行不行我不知道,但是我成功了,参观地址:

http://blog.firetry.com/t.py

欢迎继续讨论,欢迎大牛指正。

0

评论 (0)

取消