当前位置: 首页 > news >正文

django部署到centos服务器上

具体的操作步骤

步骤一 更新系统和安装依赖,

sudo yum update
sudo yum install python3 python3-pip python3-devel git

步骤二:创建并激活虚拟环境 在终端中执行以下命令:

python3 -m venv myenv
source myenv/bin/activate

可以不创建虚拟环境,

步骤三:安装Django和其他必需的库 在虚拟环境中执行以下命令:

pip install django gunicorn

步骤四:克隆项目源代码 使用git命令克隆Django项目源代码到合适的目录:

git clone https://github.com/your_username/your_project.git

其实如果是本地的项目, 可以通过远程工具连接服务器然后传输上去,我用的是winscp,直接拖拉上去

步骤五:配置Django项目 进入到项目目录中,编辑settings.py文件,配置数据库等相关信息:

cd your_project
vi settings.py

步骤六:运行数据库迁移命令 在终端中执行以下命令,将Django应用所需的数据库结构迁移到数据库中:

python manage.py migrate

步骤七:收集静态文件 在终端中执行以下命令,收集Django项目中的静态文件到STATIC_ROOT目录:

python manage.py collectstatic

步骤八:测试Django项目 在终端中执行以下命令,启动Django开发服务器并测试项目是否正常运行:

python manage.py runserver

在浏览器中访问http://服务器IP地址:8000,如果能够看到预期的页面,则表示Django项目已经成功部署。

步骤九:配置Nginx反向代理和Gunicorn 安装Nginx:

sudo yum install nginx

创建Nginx配置文件:

sudo vi /etc/nginx/conf.d/myproject.conf

在该文件中添加以下内容:

upstream app_server {server unix:/path/to/your_project/gunicorn.sock fail_timeout=0;
}server {listen 80;server_name example.com;access_log /var/log/nginx/access.log;location / {proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_redirect off;proxy_pass http://app_server;}
}

重启Nginx服务:

sudo systemctl restart nginx

启动Gunicorn服务器:

gunicorn your_project.wsgi:application --bind 

至此,你的Django项目应该已经成功部署到CentOS中。

下面是一些可能遇到的问题:

文件权限问题:确保对Django项目文件夹及其子文件有足够的权限,避免出现权限错误。

数据库连接问题:如果使用了数据库,请确保数据库的连接信息正确,并且数据库服务正常运行。

端口冲突问题:如果端口8000已经被占用,你可以尝试使用其他端口号,或者在Nginx配置中修改代理端口。

静态文件问题:如果静态文件无法正常加载,可以检查STATIC_URL和STATIC_ROOT配置是否正确,并确保静态文件已经成功收集到STATIC_ROOT目录。

日志和错误调试:在遇到问题时,可以查看Django项目的日志文件和错误输出,以更好地定位和解决问题。

我这边遇到一个是没有表的错误,主要是部署到服务器上没有做数据迁移,重新迁移一下就好了

python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py runserver  重新运行即可。

提前祝你成功部署Django项目!如果还有其他问题,欢迎随时提问。

http://www.lryc.cn/news/124180.html

相关文章:

  • IOS开发-XCode14介绍与入门
  • Interactive Marker Publish Pose All the Time (Interactive Marker通过topic一直发送其状态)
  • 前后端分离------后端创建笔记(04)前后端对接
  • 一站式自动化测试平台-Autotestplat
  • Ansible Service模块,使用 Ansible Service模块进行服务管理
  • 共识算法初探
  • Oracle查询表字段名并拼接
  • 8 张图 | 剖析 Eureka 的首次同步注册表
  • github ssh配置
  • c51单片机串口通信(中断方式接收数据)(单片机--单片机通信)示例代码 附proteus图
  • 腾讯面试题算法还原【游戏安全】
  • vue + less 实现动态主题换肤功能
  • matlab使用教程(15)—图论基础
  • 【量化课程】02_4.数理统计的基本概念
  • 【计算机视觉|生成对抗】改进的生成对抗网络(GANs)训练技术
  • SQLyog中导入CSV文件入库到MySQL中
  • Spring Security6 最新版配置该怎么写,该如何实现动态权限管理
  • CommandLineRunner 和 ApplicationRunner 用于Spring Boot 应用启动后执行特定逻辑
  • 一、Dubbo 简介与架构
  • 软考:中级软件设计师:文件管理,索引文件结构,树型文件结构,位示图,数据传输方式,微内核
  • 实践-CNN卷积层
  • 【设计模式】MVC 模式
  • 看康师傅金桔柠檬X国漫IP跨界出圈,打开IP合作新思路
  • ElementUI的MessageBox的按钮置灰且不可点击
  • pc端与flutter通信失效, Method not found
  • linux 防火墙经常使用的命令
  • Docker desktop安装mysql
  • Java SpringBoot Vue ERP系统
  • 什么是CSS中的渐变(gradient)?如何使用CSS创建线性渐变和径向渐变?
  • 【深度学习】PyTorch快速入门