赞
踩
目录
本文章是使用腾讯云专享版宝塔面板部署Django项目,踩了无数的坑和看了无数的教程(新手),才部署成功,现在分享给大家。
云服务器:腾讯云
python:3.9.0
Django:4.2.13
时间:2024.6.19
配置好,直接跳过这一步。
本文使用腾讯云演示,其他云平台也是一样(新用户可以免费试用),购买(试用)云服务器。
重装系统,选择CentOS系统,记住自定义密码。
一键登录系统
进入CentOS系统,输入su,然后再输入上面的自定义密码。打开宝塔面板官网,找到centos安装脚本复制到CentOS系统中,安装成功后,获得宝塔面板的面板地址、用户名和密码,同时要在云服务器的防火墙开放面板端口,不打开端口会访问失败。
放一个宝塔面板的CentOS安装脚本
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
通过外网地址登录进去后下载需要的软件,宝塔软件里安装Nginx,mysql(django) Nginx ,mysql (django4需要最低mysql8)与及其他你需要的软件.
以上的操作基本没有什么难度,也没有什么问题。
首先在本地(使用的是pycharm打开项目)将项目的依赖包导出,在终端里使用下面的命令会在项目工程中自动生成 requirements.txt文件,如果使用的是虚拟环境,要先切换成虚拟环境再使用命令生成依赖包。(我建议为项目单独创一个虚拟环境,在导出依赖包时不会有很多的依赖,当然也有直接导本项目的依赖包命令,但有各种问题)
pip freeze > requirements.txt
STATIC_ROOT是在部署的时候才发挥作用,执行 python managy.py collectstatic ,会在工程文件下生成staticfiles文件夹,把各个app下的静态文件收集到这个目录下。步骤如下。
1.在Django中setting.py文件中加入
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
2.在终端中输入
python manage.py collectstatic
在项目目录中生成staticfiles文件,里面有项目所有的静态文件,这里关乎这你之后部署上后网页有没有样式。最后将项目打包压缩,完成Django项目准备。
在宝塔面板导航栏中文件栏的/www/wwwroot目录里导入项目压缩包(文件夹不行),将压缩包解压然后删除。
在网络导航栏的python项目中添加python项目,需要下载于你django版本匹配的python版本。添加python项目如下图可见。(这里换了项目添加,路径不太一样)
填完之后点确定,刷会dy等待环境安装, 等待期间别乱动。之后需要在宝塔的安全栏和腾讯云的防火墙(与之前打开宝塔地址的端口一样)里打开项目端口。
python项目创建成功后是这样。
打开设置将启动用户从www改成root
查看模块里面有没有项目需要的包,如Django,mysqlclient等,如果没有可以直接添加或者在终端使用命令添加。
打开python项目管理选择域名管理,解析一个域名过来,在这里绑定,默认80端口。
打开外网映射,把开关点绿。
这时候将创建的项目重启,查看日志,如果没有报错可以使用(ip地址:端口)格式访问。
能够使用公网ip访问但是没有样式,静态文件没有调用。
非常关键的一步:打开python项目设置的uwsgi配置中加入
static-map = /static=/www/wwwroot/userfeed/static
把路径修改成django项目导出的静态文件路径,最后再访问网站地址,网站页面正常显示。
数据库的添加我之后再写。若有错误,请告知。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。