基于Ubuntu20.04 + Python3 + nginx + uwsgi + sqlite3 + Django
文章目录
基于Ubuntu20.04 + Python3 + nginx + uwsgi + sqlite3 + Django
写这篇博客的目的主要是想记录一下这一操作过程,在摸索这个过程的时候,明明有很多只是一点点Bug但是却用了特别多时间来解决,程序设计不应该是这样的,所以就把这一过程记录下来,帮助别人的同时也提醒一下自己。
一、阿里云服务器的一些操作
1. 停止现行实例
2.更换操作系统(换成ubuntu20.04,自带Python3
关于阿里云服务器的一些操作到此结束。
二、安装必要的软件
0、安装xshell 和 xftp(教程略.....
运行xshell,注意下面的xxx 换成你自己的阿里云服务器的共有地址!
ssh root@xxx.xxx.xxx.xxx
输入完之后,敲回车,弹出的对话框点 ‘接受’ 就行,再输入密码就完成了。
1、安装Django
依次输入
sudo apt-get update
pip3 install django
输入 pip3 list 查看是否安装成功,因为上面安装 Django 时没有指定版本,所以安装的是最新的版本。
pip3 list
2、安装nginx
在xshell中依次输入
sudo apt-get update
sudo apt-get install nginx
安装完成后。用你电脑的浏览器访问你的服务器的公网ip地址,看看安装成功没有!换成你自己的公网ip地址之后出现下图,就可以认为成功了。
3、安装uwsgi
访问uwsgi下载的网站,下载Stable/LTS版本的源文件到你自己的电脑。下载完之后解压这个源文件,然后用xftp把文件拖放到阿里云的Ubuntu的家目录(home)下
(分别填写自己的公网ip地址,root,密码)输入完之后回车。
首先,1.找到/home目录,2.把解压完的uwsgi拖入home目录下
在xshell中使用cd命令进入到该文件夹下,并输入命令
sudo python3 setup.py install
1. 进入该文件夹,2.输入命令
三、项目配置
1.配置项目
先用xftp把你的整个项目拖到家目录(home)那里,然后开始配置nginx文件:
在xftp中进入/etc/nginx目录下,输入/etc/nginx 回车
右键这个文件,选择 用记事本编辑
在Http里面输入如下代码:
server {
listen 80;
server_name 120.26.240.117;
charset utf-8;
location /static {
alias /home/demo01/static;
}
location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass 127.0.0.1:8000; }
}
箭头所指的地方换成你自己的公网ip地址。保存。
在xshell 中输入nginx -t 检查是否输入错误,如果未出现下面那两个箭头的内容,则说明nginx.conf里面有错误,重新检查输入即可。
nginx -t
输入无误后,重启nginx sudo service nginx restart
sudo service nginx restart
2、配置uwsgi
在xftp中输入/home/demo01,在这一目录下,新建一个uwsgi.ini文件和一个run.log文件,
在xftp中右键打开uwsgi.ini 并输入如下内容
[uwsgi]
chdir = /home/demo01
module = demo01.wsgi:application
socket = 127.0.0.1:8000
master = true
daemonize = /home/demo01/run.log
disable-logging = true
chdir 是你的博客项目的根目录,我这里的项目名叫demo01;你要替换成你自己的路径;
moudule 是你的入口wsgi模块,将demo01替换成你自己的项目名称;
socket 是通信端口设置,这个设置不用改,复制即可;
master = true 表示以主进程模式运行,不用改,复制即可;
daemonize 是你的日志文件目录,这个路径就是刚刚新建的run.log文件的路径;
disable-logging = true 表示不记录正常信息,只记录错误信息,否则你的日志可能很快就爆满了!
3、修改settings.py文件
从xftp中打开settings.py文件修改:
替换成
DEBUG = False
ALLOWED_HOSTS = ['*']
3、数据库操作
用xshell进入Django项目目录下
cd /home/demo01/
依次输入下面三条指令
python3 manage.py check
python3 manage.py makemigrations
python3 manage.py migrate
以后每次更新数据库的时候就使用这三条指令
四、运行项目并解决Bugs
启动该项目
python3 manage.py runserver 0.0.0.0:8000
打开浏览器输入公网IP地址和端口号
显然.....没出现图片,哪一步出错了呢?
出现的问题根本原因是:当我们在开发django应用时如果设置了 DEBUG = True,那么django便会自动帮我们对静态文件进行路由;但是当我们设置DEBUG = False后,这一功能便没有了,此时静态文件就会出现加载失败的情况,想要让静态文件正常显示,我们就需要配置静态文件服务了。
解决方法:
①
用xftp打开setting.py ,在最后的地方
第一个箭头是需要新增的一行,第二个箭头是需要修改的那一行。
STATIC_ROOT = 'static'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, '/static/'),
)
②
修改urls.py
from django.contrib import admin
from django.urls import path
from demo01.views import test
from django.views import static ##新增
from django.conf import settings ##新增
from django.conf.urls import url ##新增
urlpatterns = [
path('admin/', admin.site.urls),
path('', test),
## 以下是新增
url(r'^static/(?P<path>.*)$', static.serve,
{'document_root': settings.STATIC_ROOT}, name='static'),
]
保存。
从xshell中关闭原来的Django项目(直接在xshell中同时按 ctrl c),再启动Django项目
python3 manage.py runserver 0.0.0.0:8000
再打开公网IP地址,发现图片成功显示出来了。
好了!至此,Django项目部署顺利完成。