django_linux博客部署

查看后台程序的运行

netstat -nltp 按端口号
ps -ef | grep 程序名

环境的配置

  1. 把准备好的博客文件拷贝一份至虚拟机中
  2. 在虚拟机中安装docker

安装nginx

yum search nginx
yum install nginx -y

启动nginx、设置开机自启动

systemctl start nginx
systemctl enable nginx

查看运行状态

systemctl status nginx

安装django

pip install django -i https://mirrors.aliyun.com/pypi/simple

或者指定版本安装

pip install django==1.11.16     #安装指定版本的django,'=='后面的是django的版本号

参考:linux下django的安装和一些基本命令

django卸载

pip uninstall django

设置数据库端口号和密码

docker run -di --name=blog_linux -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7

测试数据库

打开Navichat,新建一个mysql的连接,连接名随意,主机号选择虚拟机中的网络端口,也就是MobaXterm命令行窗口上方的地址号,密码是我们刚刚设置的密码,点击测试连接

在这里插入图片描述

部署redis

docker pull redis

在这里插入图片描述

启动并设置redis的名称、对外和对内的端口号

docker run -di --name=blog_redis -p6379:6379 redis

在这里插入图片描述

修改设置文件

进入博客的目录,修改 settings文件
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.mysql',  # 数据库引擎
         'HOST': '127.0.0.1',  # 数据库主机
         'PORT': 3306,  # 数据库端口
         'USER': 'root',  # 数据库用户名
          'PASSWORD': '123456',  # 数据库用户密码
          'NAME': 'blog_linux'  # 数据库名字
      },
  }

安装pyMySQL扩展

pip install PyMySQL

在这里插入图片描述

配置Redis数据库

检查并安装django-redis拓展包

 pip install django-redis

在这里插入图片描述

将项目移动到opt文件夹下

mv -v django_blog/ /opt/

编写脚本文件,配置uwsgi启动方式

vim 文件名.ini
[uwsgi]		# uwsig使用配置文件启动
chdir=/opt/项目名称 #项目路径
module=项目名称.wsgi	# 指定项目的application
http-socket =:8000	#指定端口号
master=True	# 启用主进程
processes=4	# 进程数
threads=1	# 线程数
vacuum=true # 自动移除unix Socket和pid文件当服务停止的时候

在这里插入图片描述

配置日志文件

创建文件夹并修改配置文件

mkdir -pv pid
mkdir -pv log_uwsgi
vim django_blog.ini
daemonize=%(chdir)/log_uwsgi/uwsgi-8000.log
log-maxize=1024*1024*1024
pidfile=%(chdir)/pid/uwsgi-8000.pid

在这里插入图片描述

启动nginx、设置开机自启动

systemctl start nginx
systemctl enable nginx

查看运行状态

systemctl status nginx

在这里插入图片描述

在nginx配置文件下添加uwsgi的路径

cd /etc/nginx/

对配置文件做备份

cp -v nginx.conf nginx.conf.backup

在这里插入图片描述
vim nginx.conf

    upstream uwsgi {
      server 127.0.0.1:8000;
    }
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        charset      utf-8;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
          proxy_pass http://uwsgi;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

在这里插入图片描述

在这里插入图片描述
配置完成后重启服务器使配置生效

systemctl restart nginx

屏蔽8000端口
找到之前新建的uwsgi的配置文件,修改内容

在这里插入图片描述

日志跟踪nginx

cd /etc/nginx
vim nginx.conf

access_log   /var/log/nginx/nginx-uwsgi.log;

在这里插入图片描述

修改django的静态文件并配置到nginx中

找到django项目的settings文件

import os
STATIC_ROOT=os.path.join(BASE_DIR,'static/')

在这里插入图片描述

python manage.py collectstatic

应用场景:线上部署(Linux) 注意:执行时,需要与manag.py处于同一路径下
作用:执行该命令时,将所有STATICFILES_DIRS中的所有文件夹中的文件及各APP中static中的文件都复制到
静态文件根目录下:STATIC_ROOT

把静态文件配置到服务器中

cd /etc/nginx
ls
vim nginx.conf
 location /static{
            alias /opt/项目名称/static;
        }

在这里插入图片描述
重启nginx

systemctl restart nginx

生成迁移文件

python manage.py makemigrations users
python manage.py makemigrations home

可能的错误:django.db.utils.IntegrityError: (1215, ‘Cannot add foreign key constraint’) site:blog.csdn.net
在这里插入图片描述

# 修改settings.py,在配置DATABASES中,添加以下代码,取消外键检查
        'OPTIONS': {
            "init_command": "SET foreign_key_checks = 0;",
        }

执行迁移文件

python manage.py migrate

在这里插入图片描述

测试项目

#80端口是nginx使用的
python manage.py runserver 0.0.0.0:81

在这里插入图片描述
运行起来之后,打开浏览器,输入虚拟机的地址,跟上81端口号

在这里插入图片描述
需要我们添加分类管理

创建管理员账户

python manage.py createsuperuser

接着按照提示来就行
在这里插入图片描述
浏览器输入管理员站点,登录管理员账户,添加分类类别

在这里插入图片描述
在这里插入图片描述

项目运行成功
在这里插入图片描述

使用uwsgi+nginx部署项目

完成配置文件的修改后,通过脚本启动项目

uwsgi --ini 脚本名.ini

启动之后,在浏览器输入虚拟机地址:端口号,查看项目

在这里插入图片描述
端口号为nginx.conf文件中配置的端口号,我使用的是1000

在这里插入图片描述
uwsgi配置启动文件内容:

在这里插入图片描述

对于部署后的账号,我直接往数据库中插入了一条账号数据,密码和管理员相同
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值