Django项目部署(命令函部署)

Django项目搭建

一. 下载宝塔面板

我这里使用的是命令函部署 , 下载宝塔主要为了是方便操作 , 宝塔的终端支持复制粘贴 , 而且可以帮助我们快速的检索文件目录以及避免一些软件的环境配置

下载方法:

​ 打开浏览器访问 : 宝塔面板下载,免费全能的服务器运维软件 (bt.cn)

在这里插入图片描述
进入xshell将链接粘贴上去 , 回车运行即可

下载后会在终端显示用户名和密码 , 该密码只有第一次登录时有效 , 登录之后进入面板记得修改密码

宝塔的默认端口是8888 , 记得在安全组中放行该端口 , 不然无法访问

在这里插入图片描述

二. 安装Python环境

一般服务器的Linux环境中是自带Python3.6版本的 , 这里还是更具自己的需求进行下载对应版本

1、进入管理员的身份,先安装依赖的编译环境

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc

2、使用 wget 命令到官网中下载 python 的安装包

没有 wget 命令。下载 wget
yum -y install wget

进入 opt 目录 , 将安装包下载到该目录中

wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz

3、对压缩包进行解压,并且创建目录

tar -zxvf Python-3.8.10.tgz

4、进入解压好的 python 安装包

cd /opt/Python-3.8.10

5、进行编译安装

./configure 

make

make install
出现没有编译环境 gcc 
yum  install gcc

二. 安装MySQL环境

1、使用 wget 下载安装包,下载到 opt 目录中

wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

2、安装 MySQL 公钥

rpm -i mysql57-community-release-el7-10.noarch.rpm

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

3、安装 MySQL 服务

yum -y install mysql-community-server

4、启动 MySQL

启动 MySQL 服务
systemctl start mysqld.service
关闭 MySQL 服务
systemctl stop mysqld.service
查看 MySQL 服务状态
systemctl status mysqld.service

5、获取进入 MySQL 的临时密码

grep 'password' /var/log/mysqld.log![image-20240226212436131](D:/Users/lenovo/Desktop/day21_3.Linux%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA.assets/image-20240226212436131.png)

进入 MySQL 服务

mysql -uroot -p【回车】
输入密码

6、配置 MySQL 的密码

mysql 原本的密码复杂度比较高,大小写字母和数字混合不少于8位的密码

修改密码的负责度
set global validate_password_policy=0;
set global validate_password_length=1;

配置密码
alter user "root"@"localhost" identified  by "密码";
alter user "root"@"localhost" identified  by "root";

退出 MySQL 服务

7、修改 MySQL 的配置文件,修改字符编码

vim /etc/my.cnf
[client]
default-character-set=utf8 

[mysqld]
port = 3306
character-set-server=utf8
collation-server=utf8_general_ci

8、关闭MySQL服务,重新启动 MySQL 服务

如果出现上述安装不成功的情况自行百度或者使用宝塔进行安装
在这里插入图片描述

安装之后还是依照前面的命令配置一下环境

这里要注意一下的是宝塔安装后 , 密码修改可以直接通过自带的数据库进行修改
在这里插入图片描述
我的建议是不要在这个界面上直接添加数据库 , mysql下载完毕后还是通过命令函创建数据库

进入mysql

mysql -uroot -proot # 这里的默认账号名为root密码自行修改

创建数据库

create database 数据库名;

四. 配置git仓库

这里推荐使用gitee国内版本使用的是中文也方便使用 , github需要科学上网访问比较麻烦

1.在项目文件夹中创建.getignore文件

  1. 在项目中中有些文件是不需要迁移到服务器上的 , 如项目迁移文件备份文件等 , 可以通过github地址获取到相关语言的.getignore文件

    文件地址: https://github.com/github/gitignore

  2. 导出项目依赖文件

    pipreqs ./ --encoding=utf-8
    pip3 install -r requirements.txt
    

2.初始化仓库

设置用户名

使用以下命令来设置你的 Git 用户名:

git config --global user.name "几许"

设置用户邮箱

使用以下命令来设置你的 Git 邮箱地址:

git config --global user.email "1529063814@qq.com"

检查设置

你可以使用以下命令来检查你的 Git 配置:

git config --list

或者,你可以专门针对用户名和邮箱进行检查:

git config --global user.name  
git config --global user.email

切换工作目录

cd django_-shop-system

初始化 Git 仓库

git init

origin 替代网址便于以后调用

git remote add origin https://gitee.com/jixuonline/django_-shop-system.git

这条命令将一个名为 origin 的远程仓库添加到您的本地 Git 仓库。通常,origin 是默认的远程仓库名,用于指向您首次克隆或推送到的远程仓库。这里的 URL https://gitee.com/jixuonline/django_-shop-system.git 是您 Gitee 仓库的 URL。

3.上传代码到git

​ 将文件打包到远程仓库:

git add .
git commit -m 'init'
git push origin master

4.服务器拉取代码

1.下载git
yum install git -y
2.进入要下载的位置 , 创建目录
cd /opt/www/
3.克隆代码
git clone https://gitee.com/jixuonline/django_-shop-system.git
>>>输入账号和密码
3.下载更新代码
  1. 进入项目根目录

    cd /opt/www/django_-shop-system
    
  2. 更新代码

    git pull origin master
    

五. 创建虚拟环境

1.安装virtualenv

pip3 install virtualenv

2.创建虚拟环境

  1. 创建文件夹用于保存项目虚拟环境

    mkdir /envs
    
  2. 创建环境

    virtualenv /envs/django_-shop-system --python=python3.8
    

3.激活虚拟环境

source /envs/django_-shop-system/bin/activate

虚拟环境激活之后就可以在环境中安装要使用的模块

模块的话前面已经导入到requirements.txt文件中了 , 直接下载就行

pip3 install -r requirements.txt

六. Linux配置uwsgi环境

1.进入虚拟环境

source /envs/django_-shop-system/bin/activate

2.安装uwsgi

 pip install uwsgi

3.基于uwsgi运行项目 – 基于配置文件

在项目目录下创建配置文件

#socket= 0.0.0.0:8005
http= 0.0.0.0:8005
# http=120.55.47.111:8005
chdir=/opt/www/django_-shop-system/
wsgi-file = /opt/www/django_-shop-system/JiXuShopSystem/wsgi.py
#callable = application
processes = 2
threads = 2
virtualenv = /envs/django_-shop-system/
master=True
pidfile=uwsgi.pid
uid = 2001
gid = 1001
buffer-size = 65536
static-map = /static=/opt/www/django_-shop-system/static/

进入项目目录激活虚拟环境

cd /opt/www/django_-shop-system
source /envs/django_-shop-system/bin/activate

运行uwsgi

uwsgi --ini django_-shop-system_uwsgi.ini

uwsgi --stop uwsgi.121339

后台运行

uwsgi --ini django_-shop-system_uwsgi.ini &

针对运行比较麻烦我们可以创建shell脚本 , 脚本放项目目录即可

shell脚本

reboot.sh – 重启uwsgi
#!/usr/bin/env bash

echo -e "\033[34m--------------------wsgi process--------------------\033[0m"

ps -ef|grep nb_uwsgi.ini | grep -v grep

sleep 0.5

echo -e '\n--------------------going to close--------------------'

ps -ef |grep nb_uwsgi.ini | grep -v grep | awk '{print $2}' | xargs kill -9

sleep 0.5

echo -e '\n----------check if the kill action is correct----------'

/envs/nb/bin/uwsgi  --ini nb_uwsgi.ini &  >/dev/null

echo -e '\n\033[42;1m----------------------started...----------------------\033[0m'
sleep 1

ps -ef |grep nb_uwsgi.ini | grep -v grep
stop.sh – 关闭uwsgi
#!/usr/bin/env bash

echo -e "\033[34m--------------------wsgi process--------------------\033[0m"

ps -ef |grep nb_uwsgi.ini | grep -v grep

sleep 0.5

echo -e '\n--------------------going to close--------------------'

ps -ef |grep nb_uwsgi.ini | grep -v grep | awk '{print $2}' | xargs kill -9

sleep 0.5

赋予可执行权限

chmod 755 reboot.sh
chmod 755 stop.sh

运行

./reboot.sh

七. 配置nginx环境

Nginx

Nginx:开源的高性能的HTTP和反向代理服务器

反向代理:服务器做出逆向操作 , 代理服务器接收用户发送的请求,解析转发给内部服务器,返回Response的响应。

WAF功能:阻止 web 攻击

Nginx特点:内存小 , 并发能力强 , 灵活好扩展

下载依赖包以及安装包

sudo yum install epel-release
yum install -y nginx

如果这里配置有问题的同学也可以直接在宝塔中下载

进入/etc/nginx目录 , 找到nginx.conf , 将下面的代码替换原来的就行

nginx配置:

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    # include /etc/nginx/conf.d/*.conf;

    server {
        listen       80;	
        listen       [::]:80;
        server_name  120.55.47.111;	
        # root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        # include /etc/nginx/default.d/*.conf;
        charset utf-8;
        location /static {
                alias /opt/www/django_-shop-system/static;	
        }

        location / {
                include uwsgi_params;
                uwsgi_pass 127.0.0.1:8005;
	
        }




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

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


}


启动nginx

systemctl start nginx
systemctl stop nginx
 # 重启

开机启动
systemctl enable nginx
  • 53
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攒了一袋星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值