由于新冠疫情的缘故,公司要求员工停薪休假,赋闲在家的时候还是决定做点正事,学学习。

  本人Linux入门水平,Python入门水平,所以在网上找的那些python部署的帖子,看的是云里雾里的,也没有达到预期的运行效果。好不容易摸索了一个简单易懂的部署方式,记录一下为了加深理解。

  CentOS Linux release 7.6.1810 

  Python 2.7.5  # 系统自带的python版本  

  pip 20.0.2  # 已升过级

  查看系统版本

  # cat /etc/redhat-release

  CentOS Linux release 7.6.1810 (Core)

  # rpm -q centos-release

  centos-release-7-6.1810.2.el7.centos.x86_64

  1. 安装基础开发包

  yum groupinstall "Development tools"

  yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

  

  2.安装uwsgi

  pip install uwsgi

  uwsgi --version # 查看 uwsgi 版本

  

  在安装过程中可能会遇到上面的错误,执行“yum install python-devel.x86_64”可以应对。

   

  安装时报错ModuleNotFoundError: No module named '_ctypes'的解决办法

  yum install libffi-devel

  然后从config开始重新安装

  3. 安装Django

  pip install django

  pip list   # 查看已经安装的模块

  

  4. 上传项目

  如果本地有自己的Django项目可以上传。我没有项目,只是在服务器上新建了一个,为了学习如何部署和运行。

  如果项目有数据库,则需要进行同步操作。在项目根目录下执行如下命令。

  # python manage.py makemigration

  # python manage.py migrate

  

  5. 命令行运行django项目

  uwsgi --http=ip:port --file=wsgifile_path  # 不配置静态文件也可运行,但是项目加载不到静态文件

  

  6. 收集静态文件

  # vim setting.py

  找到: STATIC_URL = '/static/'

  在下面添加: STATIC_ROOT = '/howm/damu/work/shopping/static_file/'  

  执行:python manage.py collectstatic

  

  最后: uwsgi --http=192.168.37.128:8000 --file=shopping/wsgi.py --static-map=/static=static_file

  # 命令 &  # 则命令在后台运行

  如果是阿里云服务器,此处的ip需要填写内网的ip地址。

  

  7. 配置所有需要的选项,通过配置文件启动uwsgi服务器

  在shopping项目根目录下创建wsgi.ini

  [uwsgi]
  http = 192.168.37.128:8000       #web服务IP端口,uWSGI做web服务器时用
  chdir = /home/damu/work/shopping/  # 项目根目录
  wsgi-file = shopping/wsgi.py     #指定wsgi模块
  rocesses = 4               # 启动的进程数
  threads = 2               # 每个进程的线程
  master = true              # 表示主进程模式进行
  pidfile = uwsgi.pid           # 主管理进程文件放置的位置
  daemonize = uwsgi.log         # 日志文件
  static-map = /static=static_file   # 静态文件 

  以配置文件方式启动服务

  # uwsgi --ini uwsgi.ini

  进程文件,用于服务重启、停止。如:

  重启指令:uwsgi --restart [pidfile路径]

  停止指令:uwsgi --stop [pidfile路径]

  或者:

  pkill -f uwsgi -9  

  killall -s INT /uws/bin/uwsgi

  killall -9 uwsgi  # 删除uwsgi进程,由于释放端口有延迟,要等几秒。

  

  8. 其他

  ps -ef | grep uwsgi   # 查看进程

  

  一共六个进程(1个主进程,4个创建进程,1个守护进程)。

  

  

  

												

CentOS下 Django部署 uWSGI+Django(一)的更多相关文章

  1. Django部署,Django+uWSGI+nginx+Centos部署

    说明:系统是在windows上开发的,使用django1.11.4+python3.6.3开发,需要部署在centos6.4服务器上. 第一步:在Centos6.4上安装Python3.6.2 安装请 ...

  2. Django 部署 uwsgi + nginx + supervisor

    Django 部署 uwsgi + nginx + supervisor https://hacpai.com/article/1460607620615?p=1&m=0 zonghua • ...

  3. Centos下搭建 nginx+uwsgi+python

    python做web应用最麻烦的还是配置服务器了,此话不假,光中间件就有好几种选择,fastcgi.wsgi.uwsgi,难 免让人眼花缭乱. 而听说uwsgi的效率是fastcgi和wsgi的10倍 ...

  4. CentOS 下搭建部署独立SVN服务器全程详解(5.5)

    SVN服务器有2种运行方式: 1.独立服务器(例如:svn://xxx.com/xxx): 2.借助apache   (例如:http://svn.xxx.com/xxx): 为了不依赖apache, ...

  5. 了解django部署(Django + Uwsgi + Nginx)

    首先了解下基本概念: 1 WSGI WSGI:全称是Web Server Gateway Interface,是python应用程序或者框架和web服务器之间的一种接口,被广泛接受.WSGI不是服务器 ...

  6. ubuntu下配置nginx+uwsgi+django

    服务器配置是Ubuntu14.04 64位OS ubuntu14.04默认是安装好了python2.7版本不用自己安装了. 先更新下源 sudo apt-get update 第一步先安装pip su ...

  7. Django部署--uwsgi配置--nginx服务器配置

    uwsgi.ini文件 [uwsgi] #使用nginx连接时使用,Django程序所在服务器地址 socket=127.0.0.1:8000 #直接做web服务器使用,Django程序所在服务器地址 ...

  8. 在Centos下使用Siege对Django服务进行压力测试

    Siege是linux下的一个web系统的压力测试工具,支持多链接,支持get和post请求,可以对web系统进行多并发下持续请求的压力测试.今天我们就使用Siege来对Django进行一次压力测试, ...

  9. centos下运行python3.6+Django+mysql项目

    文件准备: Django项目 myslq安装 关闭防火墙 用xshell拖拽到centos上 安装文件: 安装python3.6(3.7有问题) sh install_py36.sh 关闭防火墙 sh ...

随机推荐

  1. git操作分支的常用的命令

    查看所有的分支:                 git branch -a 查看当前所在的分支:          git branch 检出分支:                          ...

  2. Charles下载及安装破解-自己编辑

    Charles下载地址 地址:https://www.charlesproxy.com/latest-release/download.do 2. Charles破解 破解地址:https://www ...

  3. springboot的restful风格获取请求中携带的参数

    http://localhost:8080/emp/1 有以上请求,我们controller要怎么获取请求中传递的参数1呢? 通过PathVariable注解,如下: @DeleteMapping(& ...

  4. frp实现NAS外网访问

    开始 入手了NAS之后就看是漫漫的折腾内网穿透的不归路.用的最多最简单的是下面三种 QC:群晖自带的,速度在100kb左右,能不能连上有时候都是运气,极其不稳定. DDNS:最推荐的方式.上下行都取决 ...

  5. 『动善时』JMeter基础 — 45、脚本录制工具Badboy介绍

    目录 1.Badboy软件介绍 2.Badboy下载 3.Badboy安装 4.Badboy界面介绍 (1)菜单栏: (2)工具栏: (3)左下角界面视图: 1.Badboy软件介绍 Badboy是一 ...

  6. 08:'my_tag' is not a registered tag library. Must be one of

    确保每次修改模板标签时都重新启动 Django 开发服务器(或确保它自己重新启动).如果服务器没有重新启动,Django 将不会注册标签. 从 django 1.9 开始,您可以在如下设置中加载这些新 ...

  7. 不下软件,照样可以完美正确格式化树莓派SD卡!(恢复U盘/SD卡到满容量)

    树莓派作用千千万,系统崩溃的理由也数不胜数(不要问我为啥知道),所以系统的重装和sd卡的格式化也在所难免.顺便给大家看一下我今天的成果,我不就是不小心摔了一下我的树莓派...我和sd卡一定是冤家! 捡 ...

  8. 【Javascript + Vue】实现随机生成迷宫图片

    前言 成品预览:https://codesandbox.io/s/maze-vite-15-i7oik?file=/src/maze.js 不久前写了一篇文章介绍了如何解迷宫:https://www. ...

  9. 京东 Vue3 组件库支持小程序开发啦!

    源码抢先看: https://github.com/jdf2e/nutui NutUI 3.0 官网:https://nutui.jd.com/3x/#/ 小程序多端适配 设计初衷 在跨端小程序的开发 ...

  10. SQL修改表约束实现

    先删除表约束 Alter Table 表名 Drop Constraint 约束名 然后再新建约束(加上级联删除) Alter Table Table_Name Add Constraint FK_T ...