之前在apache上基于mod_wsgi模式安装过Django应用,后来转到LNMP环境,再加上近期uWSGI的流行,本文将基于LNMP+uWSGI重新部署Django应用。
注:1、本文仅实现单站点部署方式,多站点虚拟主机可以通过virtualenv实现。
2、本文的环境是基于LNMP,运行于CentOS,已经安装了Nginx、PHP、MySQL、Memcached。并且操作系统自带了Python 2.6.3版本,可以升级到目前的最新版。
3、目前的Django最新版是1.4.2,仅支持Python 2.5--2.7的版本(https://docs.djangoproject.com/en/1.4/intro/install/),在3.x版本上面会出错。
基于上述环境,通过uWSGI方式部署Django应用的步骤如下:
一、安装平台
1、安装MySql-python
#cd /usr/local/src
#wget http://downloads.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmysql-python%2Ffiles%2Fmysql-python%2F1.2.3%2F&ts=1353841475&use_mirror=nchc
#tar xzvf MySQL-python-1.2.3.tar.gz
#cd MySQL-python-1.2.3
#vi site.cfg
mysql_config =/usr/local/mysql/bin/mysql_config
#python setup.py build
#python setup.py install
测试:
# python
>>> import MySQLdb
>>>
没有任何输出,安装成功!
如果出现了安装或者使用错误,请参照:http://mysql-python.sourceforge.net/FAQ.html
2、安装setuptools
#cd /usr/local/src
#wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea
#sh setuptools-0.6c11-py2.7.egg
3、安装pip
pip是一个可以替代 easy_install的安装和管理 python 软件包的工具,具体可以安装的 python 包可以在这里查看 Python Package Index(http://pypi.python.org/pypi)
相关帖子:http://briteming.blogspot.com/2017/10/pythondjango.html
注:1、本文仅实现单站点部署方式,多站点虚拟主机可以通过virtualenv实现。
2、本文的环境是基于LNMP,运行于CentOS,已经安装了Nginx、PHP、MySQL、Memcached。并且操作系统自带了Python 2.6.3版本,可以升级到目前的最新版。
3、目前的Django最新版是1.4.2,仅支持Python 2.5--2.7的版本(https://docs.djangoproject.com/en/1.4/intro/install/),在3.x版本上面会出错。
基于上述环境,通过uWSGI方式部署Django应用的步骤如下:
一、安装平台
1、安装MySql-python
#cd /usr/local/src
#wget http://downloads.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmysql-python%2Ffiles%2Fmysql-python%2F1.2.3%2F&ts=1353841475&use_mirror=nchc
#tar xzvf MySQL-python-1.2.3.tar.gz
#cd MySQL-python-1.2.3
#vi site.cfg
mysql_config =/usr/local/mysql/bin/mysql_config
#python setup.py build
#python setup.py install
测试:
# python
>>> import MySQLdb
>>>
没有任何输出,安装成功!
如果出现了安装或者使用错误,请参照:http://mysql-python.sourceforge.net/FAQ.html
2、安装setuptools
#cd /usr/local/src
#wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea
#sh setuptools-0.6c11-py2.7.egg
3、安装pip
pip是一个可以替代 easy_install的安装和管理 python 软件包的工具,具体可以安装的 python 包可以在这里查看 Python Package Index(http://pypi.python.org/pypi)
安装pip之前要确保安装了 setuptools或者distribute.
1 | #cd /usr/local/src |
pip应用
(1)安装包
# pip install simplejson
(1)安装包
# pip install simplejson
(2)更新包
# pip install --upgrade simplejson
# pip install --upgrade simplejson
(3)移除包
# pip uninstall simplejson
# pip uninstall simplejson
4、安装uWSGI
1 | #cd /usr/local/src |
5、安装Django
1 | #cd /usr/local/src |
创建django项目
项目位置:/home/django/xzhu
创建项目方法:
项目位置:/home/django/xzhu
创建项目方法:
1 | #cd /home/django |
二、平台配置
1、Nginx相关配置
1 | #mkdir /usr/local/nginx/conf/django |
内容如下:
1 | # Django project |
编辑完成后在nginx.conf追加子配置文件django_uwsgi.conf
1 | #cd .. |
内容如下:
1 | http{ |
2、UWSGI配置
1 | #mkdir -p /home/uwsgi; |
内容如下:
1 | <uwsgi> |
3、创建django应用模块
1 | #cd /home/django/xzhu |
内容如下:
1 | importos |
4、启动服务
1 | #/usr/sbin/uwsgi -x /home/uwsgi/uwsgi.xml |
5、查看进程
1 | # ps -ef|grep uwsgi|grep -v grep |
内容如下:
root 2429 1 0 10:10 ? 00:00:00 /usr/sbin/uwsgi -x /home/uwsgi/uwsgi.xml
root 2431 2429 0 10:10 ? 00:00:00 /usr/sbin/uwsgi -x /home/uwsgi/uwsgi.xml
root 2432 2429 0 10:10 ? 00:00:00 /usr/sbin/uwsgi -x /home/uwsgi/uwsgi.xml
root 2433 2429 0 10:10 ? 00:00:00 /usr/sbin/uwsgi -x /home/uwsgi/uwsgi.xml
root 2434 2429 0 10:10 ? 00:00:00 /usr/sbin/uwsgi -x /home/uwsgi/uwsgi.xml
root 2435 2429 0 10:10 ? 00:00:00 /usr/sbin/uwsgi -x /home/uwsgi/uwsgi.xml
root 2436 2429 0 10:10 ? 00:00:00 /usr/sbin/uwsgi -x /home/uwsgi/uwsgi.xml
root 2437 2429 0 10:10 ? 00:00:00 /usr/sbin/uwsgi -x /home/uwsgi/uwsgi.xml
root 2438 2429 0 10:10 ? 00:00:00 /usr/sbin/uwsgi -x /home/uwsgi/uwsgi.xml
6、监听端口
1 | # netstat -an|grep 9000 |
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
7、访问测试:
输入“http://服务器IP/”,出现it worked界面则表示成功。
输入“http://服务器IP/”,出现it worked界面则表示成功。
三、uWSGI/Django应用服务自启动
1、uWSGI启动脚本
1、uWSGI启动脚本
1 | #cd /home/uwsgi/ |
内容如下:
1 | #!/bin/bash |
则可以通过脚本 /home/uwsgi/uwsgiserver start|stop|restart来 启动|停止|重启 uWSGI服务。
2、开机自启动uWSGI服务
在/etc/rc.d/rc.local中加入:
在/etc/rc.d/rc.local中加入:
1 | /home/uwsgi/uwsgiserver start |
相关帖子:http://briteming.blogspot.com/2017/10/pythondjango.html