ssh链接上服务器之后
1.我们先更新软件库:
代码语言:javascript复制apt update
2.下载python3和pip,(也可以下虚拟环境)
代码语言:javascript复制apt install python3 python3-pip
(pip3 install vituralvenv)
3.我这里就不用虚拟环境了,安装django
代码语言:javascript复制pip3 install django
当然你也可以指定版本比如
代码语言:javascript复制pip3 install django==3.0.0
4.创建django应用
代码语言:javascript复制django-admin startproject Tom
Tom:就是这个项目的名字
5.先去runserver看看能不能启动起来,因为有的时候会有报错,一些依赖项没有安装的话,就根据报错去安装依赖项。我这里是没有报错的
代码语言:javascript复制cd Tom
python3 manage.py runserver 0.0.0.0:8000
当你看到上面的提示信息,并且在浏览器上输入你的服务器ip地址:8000
可以看到django应用的初始页面,即可证明可以跑起来,那么就直接进行下一步
6.安装uwsgi
代码语言:javascript复制pip3 install uwsgi
7.安装nginx
代码语言:javascript复制apt install nginx
8.编写配置文件
a.编写uwsgi的配置文件
在django项目目录下:
代码语言:javascript复制vi uwsgi.ini //进入vi编辑器模式
[uwsgi]
chdir=/root/Tom
module=Tom.wsgi
master=True
vacuum=True
daemonize=/root/Tom/logs/1.log
socket=:8001
编辑完之后按esc,然后输入:wq
保存并退出
这个配置文件的第一项chdir就是你的项目目录,你可以cd到你的项目里,然后输入pdw来看一下
第二项module就是启动的模块就是在项目文件夹里面的wsgi.py
第三项的意思是主进程
第四项的意思是当服务器退出的时候自动删除unix socket文件和pid文件。
第五项是服务日志的存放目录,所以记得在项目目录下mdkir一个logs目录
关于第六项,如果你想先用uwsgi启动django,那么就写成:
代码语言:javascript复制http=:8001
最后一步,复制uwsgi_params文件到你的项目目录下
代码语言:javascript复制cp uwsgi_params /root/Tom/
b.编写nginx配置,首先先开启nginx,看是否可以运行
代码语言:javascript复制/etc/init.d/nginx start
这时候在浏览器上直接输入你的服务器的ip地址
如果出现,welcome *** nginx!
就代表成功启动
然后我们开始编写我们的nginx配置
(1)
代码语言:javascript复制 cd /etc/nginx/
vi nginx.conf
然后再http里面的include我们的nginx.conf文件
然后esc :wq
保存并退出
(2)编写项目目录下的nginx.conf
代码语言:javascript复制vi nginx.conf
写入以下内容
server{
listen 80 default_server;
# server_name *
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8001;
}
location /static {
alias /root/Tom/static;
}
}
这里的static是我们在django的settings.py里写了
代码语言:javascript复制STATIC_ROOT=os.path.join(BASE_DIR,'static')
并且执行了python3 manage.py collectstatic之后
所对应的静态文件夹目录,这一块有时候会有一个坑,就是会丢失静态文件,出现403forbidden,研究了半天,解决办法就是加权限:
代码语言:javascript复制chmod o x /root/Tom
然后再刷新,样式就全都渲染出来了。
另外说一个注意点,就是当你的django项目的debug=false的时候,记得写allowHost=["*"]或者你的*可以写成你的服务器。
9.启动
首选启动uwsgi:(在你编写uwsgi.ini的项目目录里)
代码语言:javascript复制uwsgi --ini uwsgi.ini
然后重新启动ngixn,因为我们刚才已经启动了nginx
代码语言:javascript复制service nginx restart
service nginx status //看一下状态
出现绿色的running即可
然后在浏览器输入ip地址,就可以看到django的首页
至此,uwsgi nginx部署django结束。
写这篇文章已经2020/7/28了
我应该是从去年12月份开始研究django部署
那时候啥都不会 连一个linux系统的vim编辑器
或用rm删文件 cp复制文件都不会
从头学起吧,有时候为了部署,可能手机会收到5条阿里云服务器重装系统的验证码
一天5次,最后还是失败。
重复一套动作,五次
本身就会带来疲惫感和厌倦感
再加上五次都是失败
所带来的的疲惫感
有时候真的会把我压得死死的,就感觉我得换专业了吧
但是,八个月的努力没白费。
那就值了。