资源准备:

wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz

wget https://www.djangoproject.com/m/releases/1.8/Django-1.8.7.tar.gz

wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz

wget https://pypi.python.org/packages/source/s/setuptools/setuptools-19.1.1.tar.gz#md5=792297b8918afa9faf826cb5ec4a447a

以下不是必须安装

wget http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz

wget https://git.oschina.net/cp_m/hk_root/raw/master/uwsgi-2.0.14.tar.gz

wget https://pypi.python.org/packages/11/ef/3d64655693e12f163f659bc3a45837893d7ebbb242e608feb9adc788d2ca/uwsgi-2.0.14.tar.gz#md5

 
 
开始安装:
 
安装python2.7
tar xf Python-2.7.13.tgz
cd Python-2.7.13
./configure --prefix=/usr/local/python2.7
make
make install
 
安装setuptools-19.1.1
tar xf setuptools-19.1.1.tar.gz
cd setuptools-19.1.1
/usr/local/python2.7/bin/python setup.py install
 
 
安装django-1.8.7
tar xf Django-1.8.7.tar.gz
cd Django-1.8.7
/usr/local/python2.7/bin/python setup.py install
 
安装MySQL-python
tar xf MySQL-python-1.2.3.tar.gz
cd MySQL-python-1.2.3
/usr/local/python2.7/bin/python setup.py build
/usr/local/python2.7/bin/python setup.py install
 
安装pip
tar xf pip-9.0.1.tar.gz
cd pip-9.0.1
/usr/local/python2.7/bin/python setup.py install
 
安装uwsgi
/usr/local/python2.7/bin/pip install uwsgi
 
 
测试
cd /data/apps/uptest_svn && uwsgi --http :8000 --module web.wsgi
如果没有/data/apps/uptest_svn/web/wsgi.py 这个文件可以手动添加也可以;
django-admin startproject app1  #创建一个新项目查看wsgi.py文件复制过来.
 
/data/apps/uptest_svn/web/wsgi.py
"""
WSGI config for hello project.
 
It exposes the WSGI callable as a module-level variable named ``application``.
 
For more information on this file, see
https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/
"""
 
import os
 
from django.core.wsgi import get_wsgi_application
 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")
 
application = get_wsgi_application()
项目部署
uwsgi配置
vim /etc/uwsgi.ini
[uwsgi]
socket = 127.0.0.1:8088
master = true
vhost = true
no-stie = true
workers = 2
reload-mercy = 10
vacuum = true
max-requests = 1000
limit-as = 512
buffer-sizi = 30000
pidfile = /var/run/uwsgi.pid
daemonize = /var/log/uwsgi.log
 

添加进系统服务器
vim /etc/init.d/uwsgi  && chmod +x /etc/init.d/uwsgi

DESC="uwsgi daemon"
NAME=uwsgi
DAEMON=/usr/local/python2.7/bin/uwsgi
CONFIGFILE=/etc/$NAME.ini
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
 
do_start() {
$DAEMON $CONFIGFILE || echo -n "uwsgi running"
}
 
do_stop() {
$DAEMON --stop $PIDFILE || echo -n "uwsgi not running"
rm -f $PIDFILE
echo "$DAEMON STOPED."
}
 
do_reload() {
$DAEMON --reload $PIDFILE || echo -n "uwsgi can't reload"
}
 
do_status() {
ps aux|grep $DAEMON
}
 
case "$1" in
status)
echo -en "Status $NAME: \n"
do_status
;;
start)
echo -en "Starting $NAME: \n"
do_start
;;
stop)
echo -en "Stopping $NAME: \n"
do_stop
;;
reload|graceful)
echo -en "Reloading $NAME: \n"
do_reload
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload}" >&2
exit 3
;;
esac
exit 0
 
 
nginx 配置
vim /usr/local/nginx/conf/vhosts/django.conf
server {
        listen 80;
        server_name localsvn.test.com;
        location / {
                root /data/apps/uptest_svn;
                include uwsgi_params;
                uwsgi_pass 127.0.0.1:8088;
                uwsgi_param UWSGI_SCRIPT web.wsgi;
                uwsgi_param UWSGI_CHDIR /data/apps/uptest_svn;
                client_max_body_size 35m;
        }
        location /static/ {    
                root /data/apps/uptest_svn/web; 
#我的静态模板和CSS文件放在这个目录下所以设置成这个/data/apps/uptest_svn/web/static/
#如果有开启admin后台的话,建议可以把admin目录的css和js拷贝过来。
          }
        access_log /data/log/nginx/django_access.log access;
}

service uwsgi reload

service nginx restart

###############END################

python版本随意切换之python2.7+django1.8.7+uwsgi+nginx源码包部署。的更多相关文章

  1. CentOS7保留默认Python版本并安装更新Python2和Python3共存

    CentOS 7 默认的python版本是python2.7.5.因为yum依赖于默认的python版本的缘由,所以要先保留默认版本,并修改yum文件头部后,才能开始安装更新python2和pytho ...

  2. 源码包安装(Python mysql redis)

    一  源码包安装 (1)python3.6源码包安装 ./configure ------> 定制功能 make make install mysql 源码包 cmake make make i ...

  3. openWRT自学---自己编译的第一个 backfire10.03 版本的过程记录 --- 实际是由于下载了错误的backfire源码包导致的

    基于 backfire10.03(从http://downloads.openwrt.org/backfire/10.03/ 中下砸的源码包backfire_10.03_source.tar.bz2: ...

  4. Tomcat各版本及源码包下载

    Tomcat各版本及源码包下载 1.百度 Tomcat 进入官网2.Tomcat 官网地址:http://tomcat.apache.org/3.所有 Tomcat 版本及源码包下载地址:https: ...

  5. 安装python2.7.13-64bit & Pycharm在两个python版本之间切换

    本来已经安装了32位的python27,但在使用轮廓系数评估k-means模型的优良性时,出现了内存溢出的报错.原来32为的python编译器最多只能使用4GB的内存,所以就打算换成64位的pytho ...

  6. Windows下Python版本的切换

    通常在Windows系统下我们可能安装了多个Python版本,那么该如何进行版本的切换呢?下面就Python2.7与Python3.0版本进行简单说明. 1.首先需要在Windows上安装Python ...

  7. windows下安装python、环境设置、多python版本的切换、pyserial与多版本python安装、windows命令行下切换目录

    1.windows下安装python 官网下载安装即可 2.安装后的环境设置 我的电脑--属性--高级--设置path的地方添加python安装目录,如C:\Python27;C:\Python33 ...

  8. linux 多个python版本的切换

    源码安装新的python版本,我的安装路径: /usr/self/Python3.5.2 修改软链接到你所安装的python版本中: 默认python命令是在/usr/bin/目录下 1 sudo m ...

  9. pyenv 让 python 版本完美切换

    前言 我觉得如果使用 python 开发的话,还是在 unix/linux 的环境下吧,shell 工具的效率比 windows 高得多,尽管 windows 下也有 cmder 这种神器,而且现在 ...

随机推荐

  1. mac 抓包工具charles v3.9.3 安装破解步骤

    一.下载 先到它的官网http://www.charlesproxy.com/可下载到最新版本,这个下载有点慢,我已经将它放到网盘中了:http://pan.baidu.com/s/1skTXRIl ...

  2. 由一个bug引发的SQLite缓存一致性探索

    问题 我们在生产环境中使用SQLite时中发现建表报“table xxx already exists”错误,但DB文件中并没有该表.后面才发现这个是SQLite在实现过程中的一个bug,而这个bug ...

  3. Mac配置PHP

    前言 在MacOS中已经内置了PHP和Apache,所以不需要再额外安装它们,只需要简单几步即可运行PHP. 配置Apache 查看Apache版本: $ sudo apachectl -v 终端关闭 ...

  4. chpasswd命令

    chpasswd命令是批量更新用户口令的工具,是把一个文件内容重新定向添加到/etc/shadow中.   语法 chpasswd(选项) 选项 -e:输入的密码是加密后的密文:   -h:显示帮助信 ...

  5. 【C++】类和对象(构造与析构)

    类 类是一种抽象和封装机制,描述一组具有相同属性和行为的对象,是代码复用的基本单位. 类成员的访问权限 面向对象关键特性之一就是隐藏数据,采用机制就是设置类成员的访问控制权限.类成员有3种访问权限: ...

  6. 【转】XenServer体系架构解析

    XenServer是一套已在云计算环境中经过验证的企业级开放式服务器虚拟化解决方案,可以将静态.复杂的IT环境转变为更加动态.易于管理的虚拟数据中心,从而大大降低数据中心成本.同时,它可以提供先进的管 ...

  7. Java的初始化块、静态初始化块、构造函数的执行顺序及用途探究

    Java与C++有一个不同之处在于,Java不但有构造函数,还有一个”初始化块“(Initialization Block)的概念.下面探究一下它的执行顺序与可能的用途. 执行顺序 首先定义A, B, ...

  8. 2015最流行的Android组件、工具、框架大全

    Android 是目前最流行的移动操作系统之一. 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件. 本文试图将目前流行的组件收集起来以 ...

  9. TestNG 入门教程

    原文出处:http://www.cnblogs.com/TankXiao/p/3888070.html 阅读目录 TestNG介绍 在Eclipse中在线安装TestNG 在Eclipse中离线安装T ...

  10. [个人翻译]Redis 集群教程(上)

    官方原文地址:https://redis.io/topics/cluster-tutorial  水平有限,如果您在阅读过程中发现有翻译的不合理的地方,请留言,我会尽快修改,谢谢.        这是 ...