【django】django项目部署云服务器实操记录

Ⅰ  前置

        1.django项目本地服务器部署正常运行;

        2.云服务器配置2h4g,centos7.9系统,100M带宽;

        3.mysql版本

[root@aaa ~]# mysql --version
mysql  Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)

Ⅱ  背景

        将本地正常运行django项目原配置部署到云服务器。


Ⅲ  详细描述

        1.步骤一  搭建python环境

                ①创建虚拟环境;     

                ②虚拟环境下载程序依赖包;     

                注意:centos系统自带2.7版本,指定安装为python3运行路径,也可以自己修改启动软连接。

        2.步骤二 安装mysql数据库

                ①centos系统自带mariadb数据库,需删除后才能成功安装mysql;

                        删除指令

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

                        目前操作本地和云服务器mariadb都是5.5.56-2.el7.x86_64,

                        检查

rpm -qa|grep mariadb

                        后按照实际删除。

                ②mysql安装rpm -ivh mysql-community-server-8.0.20-1.el7.x86_64.rpm报错

                处理:执行指令

yum install libaio

                重新安装失败步骤。

                ③注意事项:

                        a.获取临时密码后重置登陆密码;

                        b.开启远程访问权限;

                        c.防火墙开启对外访问端口port(云服务器防火墙默认关闭,需自行开启);

# 防火墙状态查看
systemctl status firewalld
# 开启防火墙
systemctl start firewalld

                        d.mysql8版本密码策略为caching_sha2_password,django项目正常启动需要修改为mysql_native_password;

alter user 'root'@'%' identified with mysql_native_passowrd by 'your_password';

        3.步骤三 安装git

                        ①查看

git --version

                        ②安装

yum install git

        4.步骤四 安装nginx

                        直接复用本地服务器配置nginx.conf

        5.步骤五 服务器配置

                        ①确认防火墙开启

systemctl status firewalld

                        ②防火墙开放数据库端口(不需远程非必要)     

                        ③防火墙开放web服务端口80

# 查看开放端口
firewall-cmd --zone=public --list-ports
# 开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重载firewall配置
firewall-cmd --reload
# 开放端口移除80
firewall-cmd --zone=public --remove-port=80/tcp --permanent

        6.步骤六 拉取项目(gitee)

                git clone gitee_your_project_url

               

Ⅳ 运行问题

        1. 启动程序后服务端查看运行正常,但是访问报400

                问题解决:setting中正式环境ALLOWED_HOSTS未配置云服务所
在公网ip或者域名,加上后正常;

if 'ENVIRONMENT' in database_conf.keys():
    if database_conf['ENVIRONMENT']:
        ALLOWED_HOSTS = ["ip", 'http.cn', 'https.cn']
        DEBUG = False
        MEDIA_ROOT = "/home/dev_sources/"
        MEDIA_URL = 'dev/photo/'
    else:
        DEBUG = True
        MEDIA_ROOT = os.path.join(BASE_DIR, "static/")
        MEDIA_URL = 'dev_photos/'
        ALLOWED_HOSTS = ['*']
else:
    DEBUG = True
    MEDIA_ROOT = os.path.join(BASE_DIR, "static/")
    MEDIA_URL = 'dev_photos/'
    ALLOWED_HOSTS = ['*']

                注:为了避免本地代码更新setting变换,做了一个local_conf配置识别环境,再正式环境中加入云服务器所在ip或者域名。

        2.本地访问bootstrap页面样式正常,但是正式环境加载失败

                问题解决:见【nginx】服务器部署--bootstrp样式访问异常

        3.图片加载异常

                原因:nginx配置

                问题处理:增加项目用到全部图片格式

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico|JPG|PNG|GIF)$
        {
            expires      12h;
        }

         4.mysqlclient链接报错

                问题解决:见【django】linux系统部署django项目mysqlclient下载失败


Ⅴ总结

        over!

  • 12
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值