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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/686883.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智谱AI最新开源模型CHATGLM4-9B试用

智谱AI最近开源了GLM4-9B模型。之前已开源chatglm1到chatglm3,相比前面开源的相比GLM3-6B有了大幅度提升。本次开源基本的GLM4-9B,还开源了对话版GLM-4-9B-Chat, 多模态版GLM-4V-9B, 长文本版GLM-4-9B-Chat-1M。 在语义、数学、推…

解决nvidia驱动和CUDA升级问题

解决nvidia驱动和CUDA升级问题 注释:升级高版本的nvidia驱动和cuda是不影响现有的docker镜像和容器的。因为是向下兼容的。仅仅升级后重启服务器即可。 ERROR: An NVIDIA kernel module ‘nvidia-drm’ appears to already be loaded in your kernel. This may be…

git根据历史某次提交创建新分支

有时候项目在做版本管理的时候,忘记了创建某次版本的分支,而直接在主分支上进行开发了,这个时候,想要对某次提交单独拉出来一个版本分支,就需要用到这个功能: git checkout -b 新分支名 某次提交的id 找到…

全栈工程师之路 — 从零到精通Spring Boot -1

全栈工程师之路 — 从零到精通Spring Boot -1 Day 1: 项目初始化与依赖配置 课程详细介绍: 在第一天,我们将创建一个简单的Spring Boot项目,进行基本的初始化和依赖配置。我们将使用Maven子模块方式组织项目结构,并配置基本的依赖以支持后续学习。 示例代码: 创建父项…

QT Creator与QT的下载安装

0.起因/小结: 因为运行项目需要更高版本的QT。 下载了QT 6.2.0,但是里面的gcc,g,gdb是64bit的,而我的QT Creator是32bit的,所以又下载了QT 13.0.0的64bit版本。 遇到问题:msvcp140_1.dll找不到…

轻兔推荐 —— hoppscotch

via:轻兔推荐 - https://app.lighttools.net/ 简介 hoppscotch是一个开源的http调试客户端,界面简洁,功能完善,原名叫postwomen,明显是要跟postman干的,作为postman的替代品就挺合适 - 功能完善&#xff…

【全开源】Java 农产品类型商城APP小程序公众号源码(APP+小程序+公众号+H5)

农产品商城小程序:新鲜直达,品味田园生活 🌾一、引言:农产品商城小程序的便捷与实用 在现代快节奏的生活中,我们常常怀念那份来自大自然的纯粹味道。农产品商城小程序应运而生,将新鲜、健康的农产品直接送…

Ubuntu server 24 (Linux) 保存iptables 规则 重启也生效

1 默认iptables-save 保存,及时生效,重启服务器失效的 sudo iptables-save > /etc/iptables/rules.v4 2 系统启动时自动应用规则,安装iptables-persistent sudo apt-get update sudo apt-get install iptables-persistent 3 重启服务器…

目标检测——铁轨表面裂纹数据集

引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …

【git】subtree 简单教程

git subtree使用案例 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 博客首页 怒放吧德德 To记录领地 🌝分享学习心得,欢迎指正&am…

交流回馈老化测试负载:行业竞争态势

在当今的科技行业中,交流回馈老化测试负载设备已经成为了一个重要的组成部分。这种设备主要用于模拟电力系统中的各种负载情况,以便对电力系统进行全面的测试和评估。随着科技的不断发展,这个行业的竞争态势也在不断变化。 从市场竞争的角度来…

电脑风扇声音大?6个正确解决方法记得收藏!

“不知道为什么,我在使用电脑时,发现我电脑的风扇声音特别大,有什么比较好的解决方法吗?希望大家给我分享一下。” 想象一下,当你正沉浸在紧张刺激的电竞对战中,或是努力钻研一项复杂的项目时,那…

windows域控共享网络驱动器

背景 假设在一家公司,有新入职的员工。我们给其创建了域账号,有一些共享的文件需要其可以直接访问到。我们可以采用共享目录的形式,但是每次都要输入共享端的ip或者主机名,比较麻烦。我们希望创建的域账号访问共享文件更便捷一些…

SpringSecurity6从入门到实战之登录表单的提交(源码级讲解,耐心看完)

SpringSecurity6从入门到实战之登录表单的提交(源码级讲解,耐心看完) 文接上回,当SpringSecurity帮我们生成了一个默认对象.本文继续对登录流程进行探索,我们如何通过账号密码进行表单的提交,SpringSecurity在这过程中又帮助我们做了什么 登录表单的提交的源码分析 在之前了解…

未来已至!OpenAI领航:日产千亿单词,5-7万亿AI芯片巨资揭秘,人类语言产出将被超越?

OpenAI每日狂飙,产出千亿单词!他们的野心不止于此,未来竟想超越全球人类每日的百万亿单词产量。 而支撑这一切的,是一个震撼天地的5至7万亿美元的AI芯片投资大计。你能想象吗?这比许多国家的GDP还要高! 想…

docker bash: vi: command not found 修改文件无法使用 vi yum的方法

如题,被入坑很多次。也参考了很多的修复docker 中的vi yum等方法。最终都未解决。 因为要修改 已安装容器中的各类配置信息。无法使用vi yum很麻烦。除去使用docker 挂载文件方法外,还可以使用如下方法直接修改对应的配置文件信息。 如: 修改 logstas…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于两阶段鲁棒的多综合能源微网-共享储能电站协同优化运行策略》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

奥威BI零售数据分析方案的优缺点一览

奥威BI零售数据分析方案是一套基于BI大数据智能可视化分析系统,根据零售企业数据分析共性需求、业务特殊性量身打造,点击下载应用,立即将零售数据情况分析清楚,直观呈现。很多企业都是直接在该零售数据分析方案的基础上实现了智能…

Vue3【六】setup的使用和setup的返回值

Vue3【六】setup的使用和setup的返回值 setup函数的使用,和vue2的选项式不同 vue3的组合式使用的是setup函数 通过返回值将数据和方法传到页面 返回值也可以是一个箭头函数 setup先于 data和method执行所有无法读取到this和data,method的内容&#xff0c…

FuTalk设计周刊-Vol.042

🔥AI漫谈 热点捕手 1、百川智能上新超千亿大模型Baichuan 3,冲榜成绩:若干中文任务超车GPT-4 发布了超千亿参数的最新版本大模型Baichuan 3,是百川智能基础模型第三代——就在20天前,这家由王小川创办的大模型公司&a…