1。准备工作

  删除各app/migrations/下的以数字开头的数据库同步日志文件:

假设你使用的是Pycharm,我们要生成环境包:

pip freeze > requirements.txt

阿里云安全组的配置,也就是打开80和22端口

2、正式部署

// pip -V  无效
// 安装pip
apt install python-pip
pip install --upgrade pip // 1.虚拟环境安装
pip install virtualenv
// 2.虚拟环境管理包
apt install virtualenvwrapper
// 3.新建.virtualenvs文件夹
mkdir .virtualenvs
// 4.修改.bashrc文件,在最后添加
export WORKON_HOME=/root/.virtualenvs
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
// 5.执行以下命令
source .bashrc
//安装Python3.6.4
sudo mkidr /usr/local/python3  

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

cd /usr/local/python3
sudo tar -xvf Python-3.6.4.tgz cd /usr/local/python3/Python-3.6.4
sudo ./configure --prefix=/usr/local/python3 make
make install //注:若出现 zipimport.ZipImportError: can't decompress data; zlib not available
Makefile:1079: recipe for target 'install' failed
make: *** [install] Error 1 等错误,需要安装依赖文件: sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev
//  注最好不要修改默认python 为3.6,某些系统功能需要python3.5

// 6.新建虚拟环境

mkvirtualenv EnvName -p /usr/local/python3.6.4/bin/python3

// 查看 可用的环境
lsvirtualenv
// 切换环境

  workon online

注: 此时pip install -r requirements  还是失败。所以我就一个一个装了

pip install django 

pip install mysqlclient

pip3 install mysqlclient 报错 “/bin/sh: 1: mysql_config: not found”的解决方法


执行 sudo apt-get install libmysqlclient-dev,

然后执行 pip install mysqlclient

pip install -U channels

mysql -uroot -h 127.0.0.1 -p

create database mydatabase charset utf8;
exit; python manage.py makemigrations
python manage.py migrate python manage.py runserver 0.0.0.0:80 pip install uwsgi

uwsgi --ini uwsgi.ini // 关闭uwsgi
killall -9 uwsgi
// 安装nginx
apt-get install nginx // 配置 参照: https://www.cnblogs.com/Mvloveyouforever/p/8627777.html //

修复样式

nginx 配置

location /static {
alias /var/searchlog/static/;
}
先在settings.py配置文件中设置一个:STATIC_ROOT = '/var/searchlog/static/'
然后再运行python manage.py collectstatic ,这样django会将相应的静态文件放到static的目录下面。
 
 
安装 redis
apt-get install redis-server

安装驱动

pip3 install channels_redis

安装  supervisor

apt install supervisor

现在,您将需要创建超级用户配置文件(通常位于 /etc/supervisor/conf.d/- 这里,我们让Supervisor监听TCP端口,然后将该套接字关闭到子进程,以便它们可以共享相同的绑定端口:

[fcgi-program:asgi]
# TCP socket used by Nginx backend upstream
socket=tcp://localhost:

# Directory where your site's project files are located
directory=/var/www/SevOnline

#environment=PATH="/root/.virtualenvs/online/bin"
# Each process needs to have a separate socket file, so we use process_num
# Make sure to update "mysite.asgi" to match your project name
command=/root/.virtualenvs/online/bin/daphne -u /tmp/daphne%(process_num)d.sock --fd 0 --access-log - --proxy-headers SevOnline.asgi:application

# Number of processes to startup, roughly the number of CPUs you have
numprocs=2

# Give each process a unique name so they can be told apart
process_name=asgi%(process_num)d

# Automatically start and recover processes
autostart=true
autorestart=true

# Choose where you want your log to go
stdout_logfile=/var/www/SevOnline/asgi.log
redirect_stderr=true

// supervisor 相关命令
// 开启/关闭 supervisor
/etc/init.d/supervisor start
/etc/init.d/supervisor stop
// 查看所管进程状态
supervisorctl status
 

让主管(程序管理)重读并更新其工作:

$ sudo supervisorctl reread
$ sudo supervisorctl update

创建 asgi.py 放在 setting同目录下

"""
ASGI entrypoint. Configures Django and then runs the application
defined in the ASGI_APPLICATION setting.
""" import os
import django
from channels.routing import get_default_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
django.setup()
application = get_default_application()

运行 daphne   仅为测试用,不能保存日志。推荐使用上边的supervisor 

daphne -p 8001 myproject.asgi:application  

配置nginx跳转

upstream channels-backend {
server localhost:;
}
location /chat {
proxy_pass http://channels-backend; # 转发到daphne-worker
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
}

django(channel)到 ubuntu的更多相关文章

  1. Django Channel实时推送与聊天

    先来看一下最终的效果吧 开始聊天,输入消息并点击发送消息就可以开始聊天了 点击 “获取后端数据”开启实时推送 先来简单了解一下 Django Channel Channels是一个采用Django并将 ...

  2. 通过Nginx部署Django(基于ubuntu)

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...

  3. python - django 项目部署 Ubuntu 服务器后接口访问一直 502 问题

    问题描述:最近有了一台 Ubuntu 的服务器,然后准备部署个项目,结果没想到部署的过程跟用 Centos 的时候还有点不一样,最后一步我是卡在了 uwsgi 这里,访问一直502,且可以访问项目的静 ...

  4. nginx+uwsgi部署Django项目到Ubuntu服务器全过程,以及那些坑!!!

    前言:自己在windows上用PyCharm编写的Django项目,编写完后在windows上运行一点问题都没有,但是部署到服务器上时却Bug百出.百度,CSDN,sf,各种搜索寻求解决方案在历时3天 ...

  5. Django 项目搭建(ubuntu系统)

    1 环境搭建 sudo apt-get install python3-pip 安装pip3 sudo pip3 install virtualenv 安装虚拟环境,这里展示virtualenv vi ...

  6. gunicorn+anaconda+nginx部署django项目(ubuntu)

    首先进入conda 虚拟环境: source activate test 安装gunicorn: pip install gunicorn 运行gunicorn gunicorn -w 2 -b 12 ...

  7. uwsgi+anaconda+nginx部署django项目(ubuntu下)

    conda 环境不必多说: conda(或source)  activate  test 进入test虚拟环境 接下来安装uwsgi: pip install uwsgi 在conda环境下大概率安装 ...

  8. django 部署到Ubuntu安装MYSQL56

    阿里云 Ubuntu 14.04 安装mysql 5.6 1.升级apt-get sudo apt-get update 2. 安装mysql5.6版本 apt-get install mysql-s ...

  9. 解决django项目在ubuntu系统上无法安装mysqlclient

    首先我的项目是django2.0,python环境是3.5. 我们在本地开发完django项目了,在本地运行是成功的,然后我们把django项目放到服务器上,运行的时候就出错了. 如图: 我们都知道, ...

  10. ubuntu部署django详细教程

    教程使用的软件版本:Ubuntu 18.04.1 LTS,django2.0,Python 3.6.5.nginx-1.13.7.uWSGI (2.0.17.1),Ubuntu是纯净的,全新的.下面我 ...

随机推荐

  1. nmap工具简介

    nmap参数介绍: -sL:简单列表扫描 -sn:扫描主机,但是不进行端口扫描 -sS:TCP SYN扫描[半开放扫描,扫描速度高且隐蔽性好] -p |-F:扫描端口列表与扫描次序,常用的扫描方式[- ...

  2. 记一次mybatis bindingexception 问题排查

    看到的错误信息如出一辙都是这样的:Method threw 'org.apache.ibatis.binding.BindingException' exception.Invalid bound s ...

  3. C#操作SQLServer2012类

    public class SqlServerService { public string CONN_STRING { get; set; } = "Data Source=.;Databa ...

  4. gensim LDA模型提取每篇文档所属主题(概率最大主题所在)

    gensim的LDA算法中很容易提取到每篇文章的主题分布矩阵,但是一般地还需要进一步获取每篇文章归属到哪个主题概率最大的数据,这个在检索gensim文档和网络有关文章后,发现竟然没有. 简单写了一下. ...

  5. react和vue的不同

    React严格上只针对MVC的view层,Vue则是MVVM模式 virtual DOM不一样,vue会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树.而对于React而言,每当应用的状态被改变时 ...

  6. ASP.NET MVC Display Mode 移动端视图 配置对微信内置浏览器的识别

    最近在捣鼓一个稍微有点low的商城网站,没有计划做app却要求有个wap版,而前端又没有做成响应式,时间WTF,直接利用了asp.net mvc的Display Mode Provider. 使用方式 ...

  7. 版本管理工具小乌龟TortoiseGit的安装和使用(1)

    1.软件的安装:1.1 安装 Git使用软件管理工具搜索 Git:

  8. centos6.5删除/boot后恢复

    删除/boot下的所有东西 更改为从光盘启动并进入紧急救援模式 语言选择英语 选择美式键盘布局 不配置网络 选择Continue 这里提示系统已经被挂载到了/mnt/sysimage 选择shell, ...

  9. Intellij Idea 解决字符乱码、设定颜色主题、字体

    1.写入字符编码设置 2.调整mintty 字体.主题

  10. systemd的日志管理进程journald

    使用Journalctl查看并操作Systemd日志 systemd拥有强大的处理与系统日志记录功能.在使用其它工具时,日志往往被分散在多套系统当中,由不同的守护进程负责处理. Journal的实现归 ...