python版本随意切换之python2.7+django1.8.7+uwsgi+nginx源码包部署。

资源准备:

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################

时间: 2024-08-24 08:40:45

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

源码包安装(Python mysql redis)

一  源码包安装 (1)python3.6源码包安装 ./configure ------> 定制功能 make make install mysql 源码包 cmake make make install (2) redis 源码包安装 make 修改环境变量 vim /etc/profile 添加以下一行: export PATH=/opt/redis-3.2.10/src:$PATH 生效配置 source /etc/profile (3) 让python链接redis unzip red

Tomcat各版本及源码包下载

1.百度 Tomcat 进入官网2.Tomcat 官网地址:http://tomcat.apache.org/3.所有 Tomcat 版本及源码包下载地址:https://archive.apache.org/dist/tomcat/ 原文地址:https://www.cnblogs.com/cao-yin/p/11294598.html

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

本来已经安装了32位的python27,但在使用轮廓系数评估k-means模型的优良性时,出现了内存溢出的报错.原来32为的python编译器最多只能使用4GB的内存,所以就打算换成64位的python啦.(当时也不知道为啥给装了一个32位的Python了) 1. 上官网下载https://www.python.org/ 下载最新的2.7版本. 就是下面这个红框的,在描述这一项,咦,怎么没有intel处理器的,我猜测只要不是itanum处理器的,其他都支持.(Intel处理器是支持的) 安装的时

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

1.windows下安装python 官网下载安装即可 2.安装后的环境设置 我的电脑--属性--高级--设置path的地方添加python安装目录,如C:\Python27;C:\Python33 3.多版本的切换三种方法: 1)修改C:\Python27;C:\Python33内python.exe为python2.7.exe.python3.3.exe,即可区别开来 2)path路径中去除不用的,保留要用的 3)切换到想使用版本的python.exe目录下使用python解释器 4.下载好

pyenv 让 python 版本完美切换

前言 我觉得如果使用 python 开发的话,还是在 unix/linux 的环境下吧,shell 工具的效率比 windows 高得多,尽管 windows 下也有 cmder 这种神器,而且现在 windows store 也很好的开发出了 linux 子系统,但是瑕疵非常多,unix/linux 才是完美的环境.本文用到的是 archlinux ,另外 debian/ubuntu.centos 也完全适用.mac 用户也可以参考,不过 homebrew 也提供了非常方便的安装方法,但是建议

python HtmlTestRunner python2.x python3.x报告优化模板源码下载

文件py压缩包下载地址https://files.cnblogs.com/files/SunshineKimi/HtmlTestRunner2.x_3%2Cx.rar 源码拷贝如下: python 2.x #-*- coding: utf-8 -*- """ A TestRunner for use with the Python unit testing framework. It generates a HTML report to show the result at

ubuntu12上部署Django1.8.4+uwsgi+nginx超级详细流程配置到云服务器

环境: 系统:ubuntu12,系统自带默认有python2.7 框架:Django1.8.4,需要python2.7以上才能支持 前言: 用户浏览器发送http请求->nginx(静态文件js,直接返回静态文件)->uWSGI(动态请求,nginx与uWSGI是通过socket传送交流的)->Django应用程序,所以其实没有nginx,只需要uWSGI也是可以的,只不过使用nginx可以更加好的做到负载均衡 一.静态文件处理 1.1.在Django的编写调试阶段,setting中所都

Python:线程、进程与协程(3)——Queue模块及源码分析

Queue模块是提供队列操作的模块,队列是线程间最常用的交换数据的形式.该模块提供了三种队列: Queue.Queue(maxsize):先进先出,maxsize是队列的大小,其值为非正数时为无线循环队列 Queue.LifoQueue(maxsize):后进先出,相当于栈 Queue.PriorityQueue(maxsize):优先级队列. 其中LifoQueue,PriorityQueue是Queue的子类.三者拥有以下共同的方法: qsize():返回近似的队列大小.为什么要加"近似&q

Python爬虫教程-爬取5K分辨率超清唯美壁纸源码

简介 壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物.然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁纸要么分辨率低,要么带有水印. 项目源码 1 # -*- coding:utf-8 -*- 2 3 from requests import get 4 from filetype import guess 5 from os import rename 6 from os import maked