准备弄个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:完毕了,你们行不行我不知道,但是我成功了,参观地址:
欢迎继续讨论,欢迎大牛指正。
评论 (0)