Django 项目上线

首先要保证项目能够运行

在xshell6中连接 自己的服务器会话,配置环境

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

exit()    #退出

下载相关的包

sudo apt-get install python3-pip

sudo apt-get update     

pip3 install coreapi

pip3 install Django

pip3 install djangorestframework

pip3 install Pillow

pip3 install nginx

pip3 install uwsgi

在diango 项目的settings里修改配置文件

DEBUG = False
ALLOWED_HOSTS = ['*']
在django的setting文件中,添加下面一行内容:
STATIC_ROOT = os.path.join(BASE_DIR, "static/")

然后运行 python manage.py collectstatic(收集admin后台的静态文件,如果不收集,将来访问linux的blog的admin将没有样式)

将项目上传到Linux系统中,在项目文件下创建一个uwsgi的配置文件,后缀为ini

[uwsgi]
# Django-related settings
socket = 127.0.0.1:8888                           #修改  
# 项目绝对路径
chdir           = project/RestfulDemo             #修改
# Django的wsgi文件相对路径
wsgi-file       = RestfulDemo/wsgi.py             #修改
# process-related settings
# master
master          = True
# 最大进程数
processes       = 4
# 线程数
threads         = 2
#设置此参数,有一个主进程
master=True
#守护进程的方式运行,log日志存在此log文件里
deamonize=/var/log/uwsgi/djangoProject.log
#主进程id写入文件里
pidfile= /var/log/nginx/uwsgi.pid
# ... with appropriate permissions - may be needed
# chmod-socket    = 664
#退出时,清理环境
vacuum          = True
reload-mercy    = 10
max-requests    = 5000
limit-as        = 512
buffer-size     = 30000

关于文件的一些编辑设置:

设置conf.d文件

/etc/nginx/conf.ddas

server {
    listen         8000;     #外部监听端口
    server_name    http://www.moblie.site/;
    access_log      /var/log/nginx/zj_access.log;
    error_log       /var/log/nginx/zj_error.log;
	charset     utf-8;

    client_max_body_size 75M;
    root /project/RestfulDemo;    #项目根目录
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8888;  #这个地址要和项目中ini配置文件的地址一致
        uwsgi_read_timeout 30;
    }
}


项目上线出现404错误  
server{
        listen 80;
        server_name 139.196.206.2;
access_log      /var/log/nginx/zx_access.log;
error_log       /var/log/nginx/zx_error.log;
location / {
            index index.html;
root /var/www/dist;
try_files $uri $uri/ @router;
        }
location @router {
            rewrite ^.*$ /index.html last;
        }
}

 一定要重启一下nginx服务    

service nginx restart

如果端口被占用

netstat -ap | grep 8080  查看8080端口是谁在使用

kill -9 pid号  强制关闭占用端口的程序

进入项目目录  执行uwsgi --ini rest.ini    (如果提示uwsgi被占用,需要手动删除)

ps -ef|grep uwsgi 查找所有正在运行的uwsgi,

kill -9 31639

然后再次 执行uwsgi --ini rest.ini  

到此项目已成功上传服务器

原文地址:https://www.cnblogs.com/kingjordan/p/12027016.html