首页 > 代码库 > nginx+django+uwsgi
nginx+django+uwsgi
最近来了兴致,想搞一下django开发,so, 搭建一下环境
1、安装django,可能通过pip install 或者源码安装(因为环境是python2.6.6的环境,所以这里采用django 1.4.17的版本):
# tar zxvf Django-1.4.17# cd Django-1.4.17# python setup.py installrunning installrunning buildrunning build_pyrunning build_scriptsrunning install_librunning install_scriptschanging mode of /usr/bin/django-admin.py to 755running install_datarunning install_egg_infoRemoving /usr/lib/python2.6/site-packages/Django-1.4.17-py2.6.egg-infoWriting /usr/lib/python2.6/site-packages/Django-1.4.17-py2.6.egg-info
因为之前安装了一次所以输出比较少
# pythonPython 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import django>>> django.VERSION(1, 4, 17, ‘final‘, 0)
2、安装uwsgi。uwsgi是一个快速的,纯C语言开发的,自维护、对开发者友好的WSGI服务器,旨在提供专业的python web应用发布和开发功能
# tar zxvf uwsgi-2.0.9.tar.gz # cd uwsgi-2.0.9socket/plugin.o -lpthread -lm -rdynamic -ldl -lz -L/usr/local/lib -lpcre -lssl -lcrypto -lxml2 -lz -lm -lpthread -ldl -lutil -lm -lpython2.6 -lcrypt################# uWSGI configuration #################pcre = Truekernel = Linuxmalloc = libcexecinfo = Falseifaddrs = Truessl = Truezlib = Truelocking = pthread_mutexplugin_dir = .timer = timerfdyaml = embeddedjson = Falsefilemonitor = inotifyrouting = Truedebug = Falsecapabilities = Falsexml = libxml2event = epoll############## end of uWSGI configuration #############total build time: 1 seconds*** uWSGI is ready, launch it with ./uwsgi ***# cp uwsgi /usr/bin# cd ..
如果在这个过程中遇到下面错误,可以执行yum remove pcre-devel 然后再执行:
c:undefined reference to `pcre_free_study‘collect2: ld returned 1 exit status*** error linking uWSGI ***make: *** [all] Error 1
也可以使用pip进行安装:
# pip install uwsgiRequirement already satisfied (use --upgrade to upgrade): uwsgi in /usr/lib/python2.6/site-packagesCleaning up...
3、nginx配置
nginx的安装,我们在这里就不讲了,经常做的工作,相必大家都会,下面看一下vhost的配置:
# cat localhost.confserver{ listen 80; server_name localhost; location / { uwsgi_pass 127.0.0.1:9090; include uwsgi_params; uwsgi_param UWSGI_CHDIR /data/www/OMserverweb; uwsgi_param UWSGI_SCRIPT django_wsgi; access_log off; } location ^~ /static{ root /data/www/OMserverweb/OMserverweb; } location ~* ^.+.(mpg|avi|mp3|swf|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|rtf|mpeg)$ { root /data/www/OMserverweb/OMserverweb/static; access_log off; }}
4、配置uwsgi。创建uwsgi配置文件/data/nginx/config/uwsgi.ini,详细内容如下:
# cat uwsgi.ini [uwsgi]socket = 127.0.0.1:9090master = truepidfile = /var/run/uwsgi.pidprocesses = 8chdir = /data/www/OMserverwebpythonpath = ..profiler = truememory-report=trueenable-threads=truelogdate=truelimit-as=6048daemonize=/data/nginx/logs/django.log
进入到网站根目录/data/www:
# django-admin.py startproject OMserverweb# tree.├── django_wsgi.py├── django_wsgi.pyc├── manage.py└── OMserverweb ├── __init__.py ├── __init__.pyc ├── settings.py ├── settings.pyc ├── urls.py ├── urls.pyc ├── wsgi.py └── wsgi.pyc
创建django_wsgi:
# cat django_wsgi.py#!/usr/bin/env python# coding: utf-8import osimport sys# 将系统的编码设置为UTF8reload(sys)sys.setdefaultencoding(‘utf8‘)os.environ.setdefault("DJANGO_SETTINGS_MODULE", "OMserverweb.settings")from django.core.handlers.wsgi import WSGIHandlerapplication = WSGIHandler()
5、启动:
# uwsgi --ini /data/nginx/conf/uwsgi.ini # /etc/init.d/nginx restartStopping nginx: [ OK ]Starting nginx: [ OK ]# ps aux | grep uwsgiroot 10159 0.0 0.3 156504 5920 ? S 11:32 0:00 uwsgi --ini /data/nginx/conf/uwsgi.iniroot 10160 0.0 0.9 221416 18228 ? S 11:32 0:00 uwsgi --ini /data/nginx/conf/uwsgi.iniroot 10161 0.0 0.9 221436 18208 ? S 11:32 0:00 uwsgi --ini /data/nginx/conf/uwsgi.iniroot 10162 0.0 0.9 221552 18344 ? S 11:32 0:00 uwsgi --ini /data/nginx/conf/uwsgi.iniroot 10163 0.0 0.9 221548 18364 ? S 11:32 0:00 uwsgi --ini /data/nginx/conf/uwsgi.iniroot 10164 0.0 0.9 221552 18300 ? S 11:32 0:00 uwsgi --ini /data/nginx/conf/uwsgi.iniroot 10165 0.0 0.7 215352 14252 ? S 11:32 0:00 uwsgi --ini /data/nginx/conf/uwsgi.iniroot 10166 0.0 0.9 221448 18224 ? S 11:32 0:00 uwsgi --ini /data/nginx/conf/uwsgi.iniroot 10167 0.0 0.7 215352 14248 ? S 11:32 0:00 uwsgi --ini /data/nginx/conf/uwsgi.iniroot 29104 0.0 0.0 103240 864 pts/0 S+ 13:18 0:00 grep uwsgi
打开网页输入域名:
It worked!Congratulations on your first Django-powered page.Of course, you haven‘t actually done any work yet. Here‘s what to do next:If you plan to use a database, edit the DATABASES setting in OMserverweb/settings.py.Start your first app by running python manage.py startapp [appname].You‘re seeing this message because you have DEBUG = True in your Django settings file and you haven‘t configured any URLs. Get to work!
说明环境搭建成功
- 本文来自:Linux学习网
nginx+django+uwsgi
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。