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
到此项目已成功上传服务器