django 部署 感觉一步步配置安装就好了

先列出推荐的教程:
Django学习(一)网站部署流程
Django快速部署简约版 v3.0 阿里云
要想了解详细的 uwsgi 和nginx 的配置项,需要看下面的文档,很全面的
使用uWSGI和nginx来设置Django和你的web服务器 uwsgi文档

上传文件到服务器使用 winscp 工具比较方便:
winscp 下载

自己花了几个晚上部署好了,感觉也就是安装东西 有点费劲,配置文件多,其他的都还好

  • 首先用 winscp 把自己项目文件复制到服务器里面,然后解压(必须复制压缩文件,否则会很慢)

这里以 .7z 为例
解压
先安装 7z 解压软件

apt-get install p7zip

参考链接
https://blog.shiyunhong.com/3001.html
(这里只是举个例子,其他格式,直接bd即可)

  • 安装 python 版本

直接 apt-get python3 就好了

  • 然后安装依赖的 python 库

在开发环境, pip freeze > req.txt 得到 req.txt 模块目录(包括版本号等)。
1、Python3安装
2、setuptools安装
3、Pip3安装
这三个都要安装,然后再 pip3 install -r req.txt

  • 安装mysql

直接按照mysql 的官方文档,根据自己的版本一步步来,就好了
(最后记得配置一下,mysql的登陆密码,和创建自己的数据库以后面备用)

  • 安装mongodb (不需要的可以略过)

参考地址;
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/#install-mongodb-community-edition-on-ubuntu
还是mongodb 的文档做的比较好。一步步来,都没出错
(最后别忘了配置用户名,密码)

  • 安装redis

参考地址
https://redis.io/download#installation
(同样提示最后别忘记配置用户名,密码)

  • 运行manage.py 测试
进入项目根文件夹,运行
python3 mange.py makemigrations  # 生成 迁移文件
python3 mange.py migrate # 执行迁移文件
... 根据自己的需要执行其他命令 比如 collectstatic
python3 manage.py runserver 0.0.0.0:80

但是一旦我门退出 shell ,这个进程就挂了,一般我们会以后台进程方式运行这个命令:

nohup python3 manage.py runserver 0.0.0.0:80 &

通过 nohup 和 & 就可以后台进程运行了。关掉shell 网站依然 可以大开
最后效果是这样的:


image.png
  • 配置 nginx 服务器
  • 安装uWSGI:
pip3 install uwsgi

uwsgi 出错:

image.png

参考解决:
https://blog.csdn.net/ShyLoneGirl/article/details/83030024
安装 python-devel 即可

apt-get install  python3-dev 

安装uwsgi后,运行测试 第一个 my_django 是你项目所在文件夹的名字(django startproject xx 会创建一个叫 xx 的应用。,并且会在最外面生成 xx 的大目录(这个目录名,你可以改成你喜欢的,和项目无关
参考creating-a-project 做了什么
)第二个 my_django 是你项目的名字(就是有settings.py 的那个应用的名字)

uwsgi --http :80 --chdir /home/my_django/ -w my_django.wsgi
后台运行 用 nohup  .... & 哦
可以看到 后台80 进程

如果端口占用,kill 80 端口的 manage.py
然后现在运行 uwsgi 后,就不需要 python manage.py runserver 了 网站也是可以访问的;

image.png

image.png

  • 安装 nginx
apt-get install nginx
vi /etc/nginx/sites-available/my_django
输入
server {
    
    listen 80;
    server_name *.sunrain.xyz;

    location /static/ {
        root /home/my_django;
        }
    location / {
        include         uwsgi_params;
        uwsgi_pass      127.0.0.1:8080 ;
# unix:/home/my_django/my_django.sock; 不用文件形式配置了
        }
    }

保存 执行

ln -s /etc/nginx/sites-available/my_django/etc/nginx/sites-enabled/
service nginx configtest
提示失败
image.png
执行  nginx -t  查看拨错信息
很明显,我配置写错了

查了一下,原来是我 server name 格式错了 *.sunrain.xyz * 只能出现在 .的前后
改成 *.sunrain.xyz 再次测试


测试成功,但是依然nginx 启动报错

原来是80 端口被占用了,找到80 进程 kill,后再次启动nginx

service nginx restart

启动成功


大开网站测试,发现nginx 已经生效
  • 通过 uwsgi 链接 nginx 和django框架
uwsgi /etc/uwsgi/my_django/my_django.ini -d /home/my_django/my_django.log

配置成功后,页面一直显示 Welcome to nginx!
参考:(这个还没有解决哦,明天看一下 nginx 的配置把。离成功只有一步了)
https://blog.csdn.net/pcf1995/article/details/80973600

嗯,我好想知道什么错误了。我的my_django.ini 里面的 socket :xxxx.sock这个配置项,的文件是空的,我没有配置
直接写吧,就是 127.0.0.1:8080
nginx :uwsgi_pass 127.0.0.1:8080; 这样应该就把nginx 和wsgi 连起来了。
改了 配置文件,还是不行啊,太头疼了。
最后我就想,怎么盖都是 welcome to nginx,肯定是配置文件没有起作用啊。于是想起来nginx 安装的时候在 sites-available 文件夹下,有个default 配置文件,于是想肯定nginx 每次都是默认 default 作为配置文件来运行的。所以我就把自己的配置文件,改成default ,把原来的删除了。然后别忘了
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
重启 nginx服务。

image.png

终于不是 默认的欢迎页面了。心里想成功了90% 了。检查看看为什么图片样式没有加载。
image.png

看到403 立马,高兴了,因为这个问题,肯定不是大问题。也就是用户权限问题。网上随便搜搜。找到答案
image.png

nginx.conf user 配置改成 root 重启 nginx 。成功显示网站全貌
image.png

(最后提醒一下,nginx 服务开启,后 uwsgi 也要运行哦)
小插曲:网站运行成功后。上传文件 爆了 413 错误
查 mdn 413有效负载过大.以前没出现这个错误,肯定是nginx 的配置问题。
在 nginx.conf 配置夹 client_max_body_size 100m (这里限制 文件大小100m)重启搞定如图:
image.png

  • 配置 域名

买一个自己的域名,阿里云就可以。(如果你的服务器在国外,域名就不需要备案了)备案后添加dns 解析。大概一个小时内,就审核后,就可以通过 域名访问了。哈哈。


image.png

ps 最后附上我的 uwsgi 和nginx 的配置
nginx:


server {
  
    listen 80;
    server_name *.sunrain.xyz;

    location /static/ {
       alias  /home/my_django/static/;
        }
    location /media/ {
       alias /home/my_django/media/;
        }
    location / {
        include    uwsgi_params;
        uwsgi_pass   127.0.0.1:8080;
        }


}

uwsgi:


[uwsgi]
project = my_django
base = /home

chdir = %(base)/%(project)
module = %(project).wsgi:application

master = true
processes = 5

socket = 127.0.0.1:8080
chmod-socket = 666
vacuum = true
                   

第一次独立,部署一个dj应用,还是很刺激的。有什么问题欢迎留言

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容