Django项目部署(一)

Django项目部署:Linux(centos7)+Nginx+Uwsgi+Python3+Mysql+Redis
笔记来源于刘建萍老师。自学自用,侵权删。

在windows系统中开发的django项目部署到centos系统中 并且可以在浏览器中可以访问项目
详细步骤(下面步骤都是ROOT权限执行):
1)	先安装python
2)	安装pip
3)	安装django
4)	把项目从windows系统拷贝到centos系统中django框架所在的项目的路径  通过命令行
5)	先通过django自带的web服务器运行项目  python manage.py runserver 0.0.0.0:8000   X
6)	安装uwsgi web服务器
7)	安装  web服务器  nginx (小巧 性能特别高  10000)   
8)	通过nginx来启动django项目

Django+uWsgi+Nginx原理的初步理解

在这里插入图片描述

Nginx 是一个反向代理服务器,负责静态资源处理、动态请求转发以及结果的回复。

uWSGI 是一个Web服务器,负责接收 Nginx 请求,转发并处理后发给 Django 以及
接收 Django 返回信息转发给 Nginx。uWSGI是 实现了uwsgi协议,WSGI规范和HTTP协议的 一个C语言实现的软件。

Django 是一个Web应用框架,在收到请求后进行逻辑和数据处理,然后响应结果给 uWSGI 服务器。
通信关系:

在这里插入图片描述

一、更新系统软件包;安装软件管理包和可能使用的依赖

yum update -y
yum -y groupinstall "Development tools"
yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

二、安装Python (存放地方:eg: /home/soft)

登录到https://www.python.org/ftp/python/ 网站看所有版本 选择合适的版本下载

wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tgz
tar -zxvf Python-3.5.4.tgz
cd Python-3.5.4

在这里插入图片描述

#编译安装
./configure --prefix=/usr/local/python3
make && make install

在这里插入图片描述
make && make install 后的结果:
在这里插入图片描述
查看安装后py目录的文件内容
在这里插入图片描述
在这里插入图片描述

#创建软连接
ln -s /usr/local/python3/bin/python3.5 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.5 /usr/bin/pip3
#查看Python3和pip3安装情况
python3  --version
pip3    --version

在这里插入图片描述
Linux软连接相当于Windows的快捷方式,也可参考于Windows的环境变量。可直接使用Python3来操作指令,否则就要输一大串的内容/usr/local/python3/bin/python3.5。
此时python3 --version 等价于 /usr/local/python3/bin/python3.5 --version

三、安装virtualenv 来存放各个项目用到的扩展包的

pip3 install virtualenv
#建立软链接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
#安装成功在根目录下建立两个文件夹,主要用于存放env和网站文件的。
mkdir -p /data/env
mkdir -p /data/wwwroot

四、切换到/data/env/下,创建指定版本的虚拟环境。

cd /data/env
virtualenv --python=/usr/bin/python3 pyweb

在这里插入图片描述

#然后进入/data/env/pyweb/bin ,启动虚拟环境:
cd /data/env/pyweb/bin
source activate

#留意标记的位置,出现(pyweb),说明是成功进入虚拟环境
在这里插入图片描述

五、虚拟环境里用python3安装django和uwsgi

在这里插入图片描述

# (如果用于生产的话,则需要指定安装和你项目相同的版本)
pip3 install django
#切换到网站目录/data/wwwroot,把windows系统中的Django项目拷贝到linux系统的存放项目的路径中(可用rz命令来拷贝 )
cd /data/wwwroot 
#上传py项目的zip包,然后解压

在这里插入图片描述
此时py项目的路径是 /data/wwwroot/cms
在这里插入图片描述
还要上传个manager.py
在这里插入图片描述

六、通过django自带的web服务器来运行项目项目

报错:
在这里插入图片描述
出现上述错误,可能的原因是刚才的django没安装完毕。 重新操作即可
python3 manage.py runserver 0.0.0.0:8000
在这里插入图片描述
此时报了另一个错误,提示要安装pymysql
在这里插入图片描述

此时再次:python3 manage.py runserver 0.0.0.0:8000 。 再次有报错
(要修改base.py)
在这里插入图片描述
另一个报错:
在这里插入图片描述

修复参考:https://blog.csdn.net/weixin_45476498/article/details/100098297
在这里插入图片描述
修改注释base.py的内容后,再次运行python3 manage.py runserver 0.0.0.0:8000 。仍有报错,由于目前还没安装mysql。先指向公网的mysql,先让项目跑起来。
在这里插入图片描述

在这里插入图片描述
修改 settings.py的database的host。 这里指向了个公网的地址 47.100.xxx.xxx的 luzancms
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
修改setting.py的 allowed_hosts
在这里插入图片描述

添加防火墙允许的端口
https://blog.csdn.net/weixin_34332905/article/details/92673905

#防火墙端口、开启的命令
firewall-cmd --list-ports 

处理完一系列报错后再次运行
在这里插入图片描述

访问192.168.1.186:8000/admin/login 。 此时Django自带的web服务器能正常运行py项目了。在这里插入图片描述
在这里插入图片描述

步骤小结:

启动虚拟环境:source activate
8000端口一定要开启
版本的问题注释一些代码
进入项目的根目录python3 manage.py runserver o.o.o.o:8000

此部署笔记过程也记录了报错及其处理方式,通过给出的报错关键字,通过网上处理方法来解决问题。

END

猜你喜欢

转载自blog.csdn.net/Nightwish5/article/details/111475126