• django uwsgi启动


    Django uwsgi启动

    conda env list 查看conda的虚拟环境
    conda create -n 虚拟环境名称 python==3.6 创建虚拟环境指定版本号
    conda activate 虚拟环境名称 进入/激活虚拟环境
    conda deactivate 退出虚拟环境
    pip freeze > requirement.txt 打包当前环境用到的第三方包到文件
    pip install -r pip freeze > requirement.txt 到新环境中安装开发虚拟环境用到的包
    django-admin 查看admin所有命令
    django-admin startproject [项目名] 创建项目和项目文件夹
    进入虚拟环境并项目文件夹 python manage.py runserver 启动django服务(仅限开发测试启动,默认端口号8000,启动时更换端口号 python3 manage.py runserver 5000)
    ctrl + c 退出当前运行的django 服务
    sudo lsof -i:8000 查询django的进程id
    sudo kill -9 ’pid‘结束django的进程id
    python manage.py 查看所有django子命令
    python manage.py startapp 创建应用
    python manage.py migrate 数据库迁移

    django配置mysql数据库需要安装mysqlclient包(先安装mysql环境)
    安装mysqlclient需要确认先安装python3-dev和default-libmysqlclient-dev;检查是否已安装用:sudo apt list --installed|grep -E ‘libmysqlclient-dev|python3-dev’ ;若2命令无输出则需安装:sudo apt get install python3-dev (或者default-libmysqlclient-dev);

    django数据库迁移
    生成迁移文件:python manage.py makemigrations
    执行迁移脚本:python manage.py migrate

    Django 的交互环境 Shell
    python manage.py shell 测试使用

    uWSGI安装
    Ubuntu 执行 sudo pip install uwsgi ==2.0.18 -i https://pypi.tuna.tsinghua,edu.cn/simple/
    检查是否安装成功:sudo pip freeze|grep -i ‘uwsgi’
    如果安装成功则会输出 uwsgi ==2.0.18
    添加配置文件:项目同名文件夹/uwsgi.ini (与setting文件同级目录);如mylczg/mylczg/uwsgi.ini ;
    文件需以 [uwsgi] 开头,常用配置项:
    套接字方式的ip地址:端口(此模式需要有nginx,使用uwsgi协议),例如:
    socket = xxx.xxx.xxx.xxx:8000
    http通讯方式ip地址:端口号,例如:
    http=xxx.xxx.xxx.xxx:8000
    项目当前工作目录:
    chdir = /home/tarena/…/my_project
    项目中wsgi.py文件的目录(这里是相对目录,相对与上面工作目录的):
    wsgi-file = my_project/wsgi.py
    进程个数: process=4;
    每个进程的线程个数: threads = 2;
    服务的pid记录文件当前启动uwsgi主进程的id记录),
    pidfile = uwsgi.pid
    服务的日志文件位置,正式上线后后台启动日志配置
    daemonize = uwsgi.log
    开启主进程管理模式
    master = true
    启动uwsgi:
    cd到uwsgi配置文件所在目录,执行命令:uwsgi --ini uwsgi.ini
    检查uwsgi是否正常启动:ps aux|grep ’uwsgi‘ 后,屏幕显示内容多行,其中用 --ini代表启动成功
    停止uwsgi:
    cd到uwsgi配置文件所在目录,执行命令:uwsgi --stop uwsgi.pid
    如果停止失败,可能是重复执行了启动导致了pid文件的进程编号修改导致的,此时只能使用ps aux|grep ’uwsgi‘ 查询uwsgi的进程pip在进行sudo kill -9 ’pid‘,杀掉进程

    注意!注意!注意!Django中代码有任何修改,必须重启uwsgi

    nginx配置中重要的两项:
    location / {
    # try_files $uri $uri/ =404; # 此项需要注释掉,对转发无用且会阻止下面的配置进行
    uwsgi_pass 127.0.0.1:8000;
    include /etc/nginx/uwsgi_params;
    }
    sudo nginx -t 检查nginx语法
    nginx操作:nginx配置只要修改就要重启
    sudo /etc/init.d/nginx start 启动
    sudo /etc/init.d/nginx stop 停止
    sudo /etc/init.d/nginx restart 重启

    nginx 日志 访问日志和错误日志,日志路径可在配置文件中查看,例如:
    访问日志: /var/log/nginx/access.log
    错误日志:/var/log/nginxrerror.log

    uwsgi日志,在项目同名文件夹下的,uwsgi.log

    常见错误:
    502错误码:代表nginx反向代理成功,但是uwsgi未启动;
    404错误码:1、黄色报错页是django路由中不存在的路由;2、白色报错页是nginx配置错误,未注释掉try_files

    如果需要nginx加载静态文件,则django配置文件setting需修改配置,:
    STATIC_ROOT = ‘/home/tarena/项目名_static/static’
    其中:项目名_static是指项目文件夹下的static文件夹(拼接),最后的static是二级文件夹static
    进入项目目录,执行 python manage.py collectstatic 命令,django自动将项目所有静态文件复制到STATIC_ROOT中,包括django内建的静态文件。
    同时需要在ngnix中添加配置:
    location /static {
    root /home/tarena/项目名_static;
    }

  • 相关阅读:
    记忆力减退之QTableMode与数据库关联
    邻接链表作为存储结构程序改错
    oracle11g安装图解
    linux shall中删除与替换
    基于ChatGPT4+Python近红外光谱数据分析及机器学习与深度学习建模
    第4关:书籍排序
    Python学习第2天:入门必备(基础篇)
    OpenGL Windows 搭建环境(MFC版本)
    卧式铣床主传动系统设计建模及运动仿真
    linux 用户不在sudoers文件中,此事将被报告
  • 原文地址:https://blog.csdn.net/wuwei_201/article/details/124305610