Django+uwsgi部署到liunx服务器上

一、上传项目,收集静态词源

  • 1.生成requirements.txt文件,执行如下命令
pip freeze > requirements.txt
  • 2.上传django项目
  • 3.安装项目依赖,首先创建虚拟环境
vituralenv rongxingtong  # 创建虚拟环境
cd rongxingtong/bin/  # 进入到bin目录
source activate  # 进入虚拟环境
pip install -r requirements.txt

安装 mysqlclient可能会报错,报错下载一下的包

yum install python3-devel
  • 4.收集静态资源

    执行命令:
python manage.py collectstatic

执行此命令前,需要把MEDIA_ROOT,STATICFILES_DIRS先注释掉
收集完之后注释掉STATIC_ROOT=os.path.join(BASE_DIR,'static')
并解除 MEDIA_ROOT,STATICFILES_DIRS 的注释。

  • 启动django
python manage.py runserver ip:port
  • 在把DEBUG关掉后需要在配置文件中做相应的修改,静态文件才能显示
STATIC_URL = '/static/'

STATIC_ROOT = 'static'
# 配置静态文件路径
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, '/static/')
]

在urls中添加

from django.contrib import admin
from django.urls import path
from django.urls import include
from django.views import static  # 新增
from django.conf import settings  # 新增
from django.conf.urls import url  # 新增


urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('app.urls')),
    url(r'^static/(?P<path>.*)$', static.serve,
      {'document_root': settings.STATIC_ROOT}, name='static'),  # 新增
]

二、配置uwsgi

  • 1.下载uwsgi
    需要在虚拟环境和外部环境都下载uwsgi
pip install uwsgi
  • 2.在项目下新建一个uwsgi.ini配置文件
# 添加配置选择
[uwsgi]
# 配置和nginx连接的http或socket
# socket =ip:port
http=ip:port
# 配置项目路径,项目的所在目录
chdir=/opt/pythondata/rongxingtong
# 配置wsgi接口模块文件路径
wsgi-file=rongxingtong/wsgi.py
# 映射一个资源到静态文件区
static-map=/static=/opt/pythondata/rongxingtong/static
# 配置启动的进程数
processes=1
workers=2
# 配置每个进程的线程数
threads=2
# 配置起送管理主进程
# master=True
# 配置环境
home=/opt/pythonenv/rongxingtong
#配置存放主进程的进程号文件
pidfile=uwsgi.pid
#配置dump日志记录
daemonize=uwsgi.log
  • 3.启动服务
uwsgi --ini uwsgi.ini
原文地址:https://www.cnblogs.com/hziwei/p/12966875.html