Centos环境部署django项目的全过程(永久复用)
作者:心软且酷丶 发布时间:2021-06-17 00:37:28
标签:centos,环境部署,Django
一:基础环境介绍:
Centos:7.8(cat /etc/redhat-release查看版本号)
Python:3.9.5(python -V查看版本号)
Django:2.2.6(django-admin --version查看版本号)
Uwsgi:2.0.20(uwsgi --version查看版本号)
Nginx:1.20.1 (nginx -v查看版本号)
二:部署环境安装配置:
1.基础依赖环境安装
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
2.安装wegt,vim,unzip等必须命令
yum -y install wget vim unzip
3.安装python与pip(或者python多版本管理工具pyenv等)
## 1.下载自己需要版本的python版本包
wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz
## 2.新建python3目录
mkdir /usr/local/python3
## 3.安装Python3压缩包,进入解压目录,指定安装目录,安装Python3
tar -xvf Python-3.9.5.tar.xz
cd Python-3.9.5
./configure --prefix=/usr/local/python3
make && make install
## 4.安装Python3时,会自动安装pip,如果没有就手动安装
yum -y install python-pip
## 5.pip配置(更换pip的源)
(1)找到pip.conf并编辑
[root@devops ~]# cd ~
[root@devops ~]# mkdir .pip
[root@devops ~]# vim pip.conf
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
:wq!保存退出即可
(2) 安装依赖安装好pip
[root@devops ~]# yum -y install epel-release
[root@devops ~]# yum install python-pip
[root@devops ~]# pip install --upgrade pip
## 6.升级下pip
pip install --upgrade pip
## 7.创建软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
## 输入python3测试是否安装成功
python -V
4.安装nginx
## 1.yum方式安装nginx
yum -y install nginx
## 2.查看nginx版本
nginx -v
## 3.启动nginx
systemctl status nginx ## 查看nginx状态
systemctl start nginx ## 开启nginx服务
systemctl stp nginx ## 关闭nginx服务
5.安装uwsgi
## 1.安装uwsgi
pip3 install uwsgi
## 2.建立软链接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
## 3.查看uwsgi版本
uwsgi --version
三:部署django项目:
1.上传项目并安装项目模块并启动测试
## 1.上传文件到服务器
## 2.解压项目
unzaip devops.zip
## 3.pip安装项目依赖模块
pip3 install -r requirements.txt
## 4.通过python3 manage.py runserver运行一下项目,如果能正常启动则进行下一步,不能正常运行往上检查。
这里需要注意使用python3来执行manage.py,否则会出现报错情况!
2.在项目里配置uwsgi.ini配置文件
(1)在settings.py所在目录vim新文件 项目名称.ini
(2)配置 项目名称.ini文件
[uwsgi]
master=true
chdir=/data(服务器实际目录)/项目名称
module=项目名称.wsgi
py-autoreload=1
lazy-apps=true
socket=127.0.0.1:8000
processes=4
buffer-size=32768
daemonize=uwsgi.log
log-maxsize = 5000000
vacuum = true
disable-logging = true
(3)检查settings.py配置并收集项目静态文件
一般都是这个配置:
settings.py配置:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, '/static/')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, '../bitmain_cmdb/static'), ## 实际静态文件所在项目路径,亲测好使
]
url.py配置:
from django.conf.urls import *
from django.contrib import admin
from django.conf.urls import url,include
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
url(r'^cmdb_admin/', admin.site.urls),
] + static(settings.STATIC_URL,document_root = settings.STATIC_ROOT)
执行收集静态文件命令:
python manage.py collectstatic
(4)启动测试,并查看日志
## 在当前目录启动
uwsgi -i 项目名称.ini
## 启动之后查看进程
ps -ef | grep uwsgi
启动:uwsgi -i 项目名称.ini
查看进程
查看日志,服务启动正常
3.配置nginx
vim /etc/nginx/nginx.conf
nginx.conf配置
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 {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
charset utf-8;
location /static {
alias /项目所在目录/static/;
}
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
}
}
}
(4)启动nginx
## 1.配置完nginx.conf,执行 nginx -t /etc/nginx.conf 启用nginx配置文件
## 2.软加载nginx nginx -s reload
(5)访问django项目http://服务器ip/login/
四:备注
之后项目重启只需要重启uwsgi之后再重启nginx即可,切记正式环境要关掉django的debug模式,防止报错源码被看到。
## 项目重启
killall -9 uwsgi
uwsgi -i 项目名称.ini
nginx -s reload
## 关闭项目debug模式
vim settings.py
debug = Fasle
来源:https://blog.csdn.net/qq_41905051/article/details/125181364
0
投稿
猜你喜欢
- 在一众有趣的Python库中,TQDW也算是独树一帜了,原因主要是因为自身所存在的功能效果,比如我们如果在写项目,往往会忘记我们要完成多少量
- from keras.utils.np_utils import to_categorical注意:当使用categorical_cross
- 一般情况下,导出超时可能都是以下三种情况:一、sql语句复杂,查询时间过长;二、处理查询后数据逻辑冗余;三、数据量过大导致响应超时。接下来分
- 本文实例讲述了Python中文分词实现方法。分享给大家供大家参考,具体如下:在Python这pymmseg-cpp 还是十分方便的!环境 u
- 概要:Oracle关系数据库系统以其卓越的性能获得了广泛的应用,而保证数据库的安全性是数据库管理工作的重要内容。本文是笔者在总结Oracle
- Dean Edwards 最近有篇文章很精彩,忍不住在这里翻译下。-- Split --很多 Javascript 框架都提供了自定义事件(
- 目的:基于办公与互联网隔离,自带的office软件没有带本地帮助工具,因此在写vba程序时比较不方便(后来发现07有自带,心中吐血,瞎折腾些
- Python是一种非常流行的脚本语言,而且功能非常强大,几乎可以做任何事情,比如爬虫、网络工具、科学计算、树莓派、Web开发、游戏等各方面都
- 运行MySQL Server 5.0安装程序“setup.exe”,出现如下界面: 安装向导启动,按“Next”继续:
- 1 递归函数的特点特点一个函数 内部 调用自己函数内部可以调用其他函数,当然在函数内部也可以调用自己代码特点函数内部的 代码 是相同的,只是
- 目录瞎比比与 print 相比 logging 有什么优势?基础用法保存到文件多模块使用 logging使用配置文件配置 logging瞎比
- 在Windows环境下,经常遇到系统Over的情况,如果你在新装了系统和SQL Server 2005后,需要把SQL Server2000
- 编程一直是在课余时间,放假时间自学,到现在为止也有半年了。这是我自己用python实现的连连看,也是第一个完成的游戏,虽然极其简陋。思路呢,
- 什么是树表查询?借助具有特殊性质的树数据结构进行关键字查找。本文所涉及到的特殊结构性质的树包括:二叉排序树。 平衡二叉树。使用上述树结构存储
- Python被誉为全世界高效的编程语言,同时也被称作是“胶水语言”,那它为何能如此受欢迎,下面我们就来说说Python入门学习的必备11个知
- 前言事情是这样的,昨天去表弟家,用了下他的电脑,不小心点到了他硬盘里隐藏的秘密,本来我只需要用几分钟电脑的,害得我硬是在电脑旁坐了几个小时~
- 以前写JS程序的时候,经常碰到了定位的问题。但每次都看到一半,找到需要的属性就了事了。今天下了狠心,要花点时间,彻底地弄明白他。以下内容看着
- 1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。 2、 开始->程序->Oracle - OraHome81-
- selenium3.0之后的版本的就不支持直接打开火狐浏览器,启动火狐浏览器报错,如下图,要想运行就需要我们单独装上驱动。3.0之前的版本,
- 昨天去面试,百度题果然不一样,笔试我就蒙了,现在能记住两道题,笔试:1、title和alt 区别2、三列布局 左边裂固定宽度左对齐,右边列固