Django代码部署
操作系统:Centos7.2一、发布Django项目用到的软件 0. python3 - 开发环境 1. virtualenv - 在python开发中,如果出现多个项目共用一台服务器。难免碰到不同的工程依赖不同的版本库问题。 或者在开发过程中不像让物理环境充斥各种各样的库,引发未来的依赖灾难。virtualenv可以在系统 中建立多个不同并且互不干扰的虚拟环境 2. virtualenvwrapper - virtualenv的一个最大缺点是 每次开启虚拟环境前要去虚拟环境所在目录下的bin目录下source一下 activate,这就需要我们记住每个虚拟机环境所在的目录。 3. uwsig - 想比较django自带的web服务wsigref支持高并发,高性能。 4. nginx - 提供负载功能 - 处理静态文件要比uwsig性能好,因为uwsgi启动django项目, 不会读取一个静态文件的配置参数(不像wigiref会自动读取配置文件的static配置) - 性能更加 5. supervisor - 是基于python开发的任务管理工具,用来管理和自动运行各种后台任务。 二、python3的安装(编译安装) 1. 安装相关依赖包 # 安装所有的开放包 yum groupinstall "Development tools" yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y 2. 安装python3 - cd /opt/ - wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz - tar xf Python-3.6.2.tgz - ./configure --prefix=/opt/python3.6 - make && make install 3. 配置环境变量 - echo "# python 环境变量" >>/etc/profile echo "PATH=/opt/python3.6/bin/:\$PATH" >>/etc/profile - source /etc/profile # 生效环境变量 4. 测试方法 - python3 三、安装virtualenv 1. 指定pip源安装安装virtualenv - pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv 2. 虚拟环境管理 - 创建虚拟环境统一目录:mkdir /home/MyProject - 进入虚拟环境统一目录:cd /home/MyProject/ - 创建虚拟环境:virtualenv --no-site-packages --python=python3 p1 # --python:指定解释器版本 p1:环境名称 - 进入虚拟环境:source p1/bin/activate - 安装第三方包:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==1.11.15 - 退出虚拟环境:deactivate 3. virtualenv是如何创建“独立”的Python运行环境的呢? - 原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时, virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。 4. 如何保证项目上线环境包保持一致性? - 通过命令保证环境的一致性,导出当前开发环境python环境的包。requirements.txt 包含环境所需的包和版本列表 pip3 freeze > requirements.txt - 把requirements.txt上传到服务器,进行安装 pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple 四、安装virtualenvwrapper 1.指定pip源安装virtualenvwrapper - pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper 2. 修改环境变量 - 打开:vim ~/.bashrc - 添加一下内容: #设置virtualenv的统一管理目录 export WORKON_HOME=/home/Envs #添加virtualenvwrapper的参数,生成干净隔绝的环境 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #指定宿主机python3解释器绝对路径 export VIRTUALENVWRAPPER_PYTHON=/opt/python3.6/bin/python3 #执行virtualenvwrapper安装脚本 source /opt/python3.6/bin/virtualenvwrapper.sh - 重新登录当前linux用户 3. 基本使用virtualenvwrapper - 创建虚拟环境:mkvirtualenv p2 - 激活进入虚拟环境:workon p2 - 创建第二个虚拟环境(任意位置执行命令即可):mkvirtualenv p3 - 激活进入虚拟环境:workon p3 - 切换虚拟环境:workon p2 - 退出虚拟环境:deactivate - 删除虚拟环境:rmvirtualenv p2 - 列出所有的虚拟环境:lsvirtualenv - 导航到当前激活的虚拟环境目录中:cdvirtualenv - 导航到site-packages:cdsitepackages 4. 使用virtualenvwrapper创建并允许一个django项目 - 创建虚拟环境:mkvirtualenv p5 - 激活:workon p5 - 安装django:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==1.11.15 - 查看django是否安装成功:pip3 list - 创建django项目:django-admin startproject mysite(可以上传一个已经写好的项目到此目录) - 进入到项目路径:cd mysite - 创建APP:python3 manage.py startapp app01 - 配置 vim mysite/settings.py 注册app: INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01', ] 修改允许访问主机: ALLOWED_HOSTS = ['*'] - 配置url:vim mysite/urls.py from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^hello_django/', views.hello), ] - 配置视图:vim app01/views.py from django.shortcuts import render,HttpResponse def hello(request): print('request is :',request) return HttpResponse('django is ok ') - 不需要启动,一会使用uwsgi启动 五、安装uwsgi 0. 进入虚拟环境:workon p5 1. 指定pip源,安装uwsig - pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple uwsgi 2. 运行简单的uwsgi - uwsgi --http :8000 --wsgi-file test.py - # test.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"] # python3 - http://IP:8000 3. uwsgi热加载python程序,启动p5项目(需要进入到项目目录下) - uwsgi --http :8088 --module mysite.wsgi --py-autoreload=1 4. 测试页面:http://IP:8088/hello_django/ 5. 配置文件方式启动uwsgi - 进入虚拟环境:workon p5 - 进入:cdvirtualenv - 打开文件写入一下内容:vim uwsgi.ini # mysite_uwsgi.ini file [uwsgi] # 项目绝对路径 chdir = /home/Envs/p5/mysite # Django's wsgi file module = mysite.wsgi # 虚拟环境路径 home = /home/Envs/p5 # master master = true # 进程数 processes = 4 # 直接访问的时候使用http http = 0.0.0.0:8088 # 使用nginx代理的时候使用socket #socket = 0.0.0.0:8088 # chmod-socket = 664 # clear environment on exit vacuum = true - 启动:uwsgi --ini uwsgi.ini - 访问测试页面即可 六、安装nginx 1. 使用yum安装nginx - yum install epel-* -y - yum install nginx -y 2. 启动nginx - nginx 3. 配置nginx.conf - vim /etc/nginx/nginx.conf 修改如下内容 location / { include /etc/nginx/uwsgi_params; uwsgi_pass 127.0.0.1:8088; } # 静态文件入口 location /static { alias /home/Envs/p5/static; } - 检测nginx是否正确:nginx -t - 重启nginx:nginx -s reload 4. 收集静态文件到 /home/Envs/p5/static - 配置django的settings.py #指定静态文件存放路径 STATIC_ROOT='/home/Envs/p5/static' #指定静态资源,请求入口 STATIC_URL = '/static/' STATICFILES_DIRS=[ os.path.join(BASE_DIR,"static"), ] - 创建静态文件目录:mkdir /home/Envs/p5/mysite/static - 到项目的根目录执行:python3 manage.py collectstatic 5. 访问http://IP/admin 测试静态页面是否加载 七、安装supervisor 1. 安装supervisor(注意一下操作退出虚拟环境执行) - yum install python-setuptools easy_install supervisor 2. 通过命令生成supervisor的配支文件 - echo_supervisord_conf > /etc/supervisord.conf 3. 然后再/etc/supervisord.conf末尾添加上如下代码 [program:p5] ; 是被管理的进程配置参数,xx是进程的名称 command= /home/Envs/p5/bin/uwsgi --ini /home/Envs/p5/uwsgi.ini ; 程序启动命令 autostart=true ; 在supervisord启动的时候也自动启动 4. 启动supervisor:supervisord -c /etc/supervisord.conf 5. supervisor的基本操作 - 更新新的配置到supervisord:supervisorctl update - 重新启动配置中的所有程序:supervisorctl reload - 启动某个进程(program_name=你配置中写的程序名称):supervisorctl start program_name - 查看正在守候的进程:supervisorctl - 停止某一进程 (program_name=你配置中写的程序名称):spervisorctl stop program_name - 重启某一进程 (program_name=你配置中写的程序名称):supervisorctl restart program_name - 停止全部进程:supervisorctl stop all (显示用stop停止掉的进程,用reload或者update都不会自动重启。)
转载于:https://www.cnblogs.com/spf21/p/9984099.html
Django代码部署相关推荐
- 使用Capistrano向EC2部署Django代码--关于SSH相关的配置
使用Capistrano向EC2部署Django代码--关于SSH相关的配置 - foxracle - 博客园 使用Capistrano向EC2部署Django代码--关于SSH相关的配置 在使用Ca ...
- 容器化部署实践之Django应用部署(二)
上一篇文章有些同学感觉不够详细理解起来有些困难,我再来简单解释一下. 我们在开发的情况下: 浏览器请求→ python manage.py runserver(比如8000) → 到应用代码( ...
- 基于华为云的Django网站部署
学习笔记,仅供参考,有错必纠 参考自:Xshell远程连接服务器:win10 开启ssh server服务 远程登录 文章目录 基于华为云的Django网站部署 远程登录华为云 Xftp+Xshell ...
- 如何将本地python项目部署到服务器上_如何将本地的Django项目部署到云服务器
如何将本地的Django项目部署到云服务器 开发环境 开发语言: Python 后台框架:Django 前端框架:bootstrap web服务器:nginx wsgi服务器:uwsgi 查看本地项目 ...
- Django项目部署在Centos7
把Django项目部署在Centos7下 先有一个Django项目 一个员工管理系统(ems) 员工管理系统 使用VMware创建一个虚拟的Linux系统 Centos7下安装MySql5.7 详细安 ...
- django 部署_狂野的Django:部署生存的技巧
django 部署 by Ali Alavi 通过Ali Alavi 狂野的Django:部署生存的技巧 (Django in the wild: tips for deployment surviv ...
- Django项目部署(nginx1.18+uwgsi)
Django项目部署: 9.1uwsgi 遵循wsgi协议的web服务器 9.1.1uwsgi的安装 pip install uwsgi 9.1.2uwsgi的配置 项目部署时,需要把settings ...
- django + sae 部署微信后台
django 在新浪云部署 微信后台 步骤 1.首先在新浪云 上创建应用,因为用的是django web框架,所以选择python,版本只支持2.7,所以最好本地开发就用2.7这个版本,二级域名和应 ...
- pipenv 虚拟环境 Django项目部署
pipenv 虚拟环境 Django项目部署 1. 创建服务器 创建root 配置ssh 安装python3.7 pip3 ubuntu参考 https://blog.csdn.net/u014775 ...
- ruby网站部署到服务器,入门知识: 把代码部署到服务器, SSH
入门知识: 把代码部署到服务器, SSH 2015-07-28 16:28 访问量: 2868 分类: 技术 如何登陆远程服务器呢? $ ssh root@your.server.com -p 334 ...
最新文章
- 微型计算机的EMC设计视频,干货 | EMC设计有多难,看完这31个电磁兼容标准电路,瞬间懂了...
- mysql 5.5.38_数据库的硬迁移和mysql 5.5.38源码安装
- 利用python opencv实现图像自适应二值化
- linux命令匹配path顺序,PATH 中的路径先后顺序的问题
- 九度OJ 1434 今年暑假不AC
- SAP Leonardo机器学习图片相似度打分API的测试报告
- selenium.common.exceptions.WebDriverException: Message: ‘chromedriver‘ executable needs to bein PATH
- java继承实现不用每个类都写toString方法
- MongoDB数据库(二):增删查改
- java static 对象加锁_java安全编码指南之:lock和同步的正确使用
- Linux 安装 OFFICE 2007
- 从矩阵谱分解到矩形的最少正方形剖分
- mac通过u盘启动linux系统,在mac下制作linux启动U盘
- 前端面试需要准备什么?
- 如何解除计算机上的安全警报,怎么关闭windows的安全警报
- 在安装Maven检查版本时出现Please set the JAVA_HOME variable in your environment to match the locat
- ISA防火墙规则练习
- 计算机科学技术专业发展分析,计算机科学与技术发展现况分析
- Mtk ALPS Led驱动的加载过程
- Dubbo3的Triple协议踩坑记录
热门文章
- 【渝粤教育】国家开放大学2019年春季 2328仓储与配送管理 参考试题
- 【渝粤教育】广东开放大学 跨文化商务沟通 形成性考核 (39)
- 广东开放大学学习指南
- 【5分钟 Paper】(TD3) Addressing Function Approximation Error in Actor-Critic Methods
- 【BZOJ2816】【洛谷】【ZJOI2012】—网络(LCT)
- float.valueof()自动截取有效位数
- windows server 2012 --安装远程桌面服务后无法远程的问题
- Linux下 jenkins 的 使用
- base——JavaSEJavaEEJavaME的区别【Java中常用的包结构】
- 理解ASP.NET MVC中的ActionResult