> 文章列表 > Django项目部署在服务器(配置Django+Mysql8.0+Python+Nginx+uWsgi)

Django项目部署在服务器(配置Django+Mysql8.0+Python+Nginx+uWsgi)

Django项目部署在服务器(配置Django+Mysql8.0+Python+Nginx+uWsgi)

Django项目部署在服务器(配置Django+Mysql8.0+Python+Nginx+uWsgi)

项目 配置版本
服务器 阿里云CentOS 7.6
数据库 Mysql8.0
Python 3.7.1

一、更新yum并设置自动更新

1、手动更新yum

yum update -y

2、安装自动更新的插件

yum install -y yum-cron

3、设置自动更新yum

vim /etc/yum/yum-cron.conf

找到 apply_updates = nono改为yes,然后保存
4、启动yum-cron和设置开机自动启动

systemctl start yum-cron
systemctl enable yum-cron

二、防火墙

1、安装启动防火墙

yum install -y firewalld
systemctl start firewalld
systemctl enable firewalld

2、开放80 端⼝

firewall-cmd --zone=public --add-port=80/tcp --permanent

3、重启防火墙

systemctl restart firewalld

三、安装mysql8.0

1、使用rpm 命令查找出要删除的mariadb文件

rpm -pa | grep mariadb

2、将mysql文件下载到Centos/usr/local/mysql文件夹下

cd /usr/local
mkdir mysql
cd mysql
wget  https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

3、安装 yum repo文件并更新 yum 缓存

rpm -ivh mysql80-community-release-el7-1.noarch.rpm 

4、更新 yum 命令

yum clean all
yum makecache

5、使用 yum安装mysql

yum install mysql-community-server

会出现GPG验证检查
Django项目部署在服务器(配置Django+Mysql8.0+Python+Nginx+uWsgi)

解决办法:

yum -y install mysql-community-server --nogpgcheck

6、开启mysql 服务

systemctl start mysqld.service

7、获取初始密码登录mysql

cat /var/log/mysqld.log | grep password

8、使用初始密码并修改密码

mysql -u root -p  #会提示输入密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'ZHANGsan2!';#注意位数和种类至少大+写+小写+符号+数字

9、在防火墙中开启3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload  # 重启防火墙

四、安装Python

1、安装环境依赖

yum install -y openssl-devel bzip2-devel expatdevel gdbm-devel readline-devel sqlite-devel zlib-devel libffi-devel MySQL-python mysql-devel

2、在主目录建一个文件夹放python安装包

wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
tar -zxvf Python-3.7.1.tgz # 解压
mkdir /usr/local/python3

3、进入解压的文件夹安装python3

cd ~/python3/Python-3.7.1
./configure --prefix=/usr/local/python3  # 修改安装路径
make
make install
ln -s /usr/local/python3/bin/python3 /usr/bin  # 创建链接
python3 --version  # 是否安装成功
ln -s /usr/local/python3/bin/pip3 /usr/bin # 创建pip3的链接

4、安装数据库插件问题

pip3 install mysqlclient   # 安装数据库插件

安装失败
查找到 mysql_config配置文件,命令行输入:

find / -name mysql_config  #没有任何回应,说明并没有查找到 mysql_config 配置文件,该问题为缺少mysql源所导致的

5、下载安装mysql配置源:

 wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm  # 根据自己mysql版本下载相对应的mysql配置源

6、安装mysql-devel依赖包:

yum install mysql-devel --nogpgcheck

再次安装就成功了

五、安装 Django、Nginx 和 uWsgi

pip3 install Django
ln -s /usr/local/python3/bin/django-admin /usr/bin  # 给 Django 创建链接
pip3 install uwsgi
ln -s /usr/local/python3/bin/uwsgi /usr/bin
yum install -y nginx  # 安装 Nginx

六、设置 Django 项⽬

1、⾸先创建⼀个 Django 项⽬, cd /home 先进⼊ home ⽬录
2、使⽤ django-admin startproject mysite 创建⼀个项⽬, mysite 是项⽬名, 可以⾃⼰定义
3、接着 cd mysite/mysite 进⼊ mysite ⽬录下的 mysite ⽂件夹
4、找到 setting.py ⽂件打开并修改
5、如果需要的话, 关闭调试模式 Debug = False
6、允许的主机 Allow_host = [‘这⾥填写本机的 IP’, ‘localhost’]
7、移植静态⽂件, 在最末尾添加 STATIC_ROOT = os.path.join(BASE_DIR, ‘collected_static’)
第⼆个路径为移植后的路径, 然后继续添加 STATICFILES_DIRS = (os.path.join(BASE_DIR, ‘static’),)
8、如果需要的话, 继续在 settings.py 中设置模板和 MySQL 数据库
9、进⾏静态移植, 退出设置⽂件, 在项⽬⽬录下创建⼀个 static ⽂件夹, 在 /home 下创建⼀个 collected_static ⽂件夹. 然后运⾏ python3 manage.py collectstatic
测试代码:
urls.py
Django项目部署在服务器(配置Django+Mysql8.0+Python+Nginx+uWsgi)
views.py
Django项目部署在服务器(配置Django+Mysql8.0+Python+Nginx+uWsgi)

七、配置 uWsgi

1、在 mysite 项⽬下新建 uwsgi.ini ⽂件 (⽂件与 manage.py 同级) 填写

[uwsgi] socket = 127.0.0.1:8000 chdir = /home/mysite module = mysite.wsgi master = true processes = 1 threads = 2 max-requests = 2000 chmod-socket = 664 vacuum = true stats = %(chdir)/uwsgi/uwsgi.status pidfile = %(chdir)/uwsgi/uwsgi.pid daemonize = %(chdir)/uwsgi/uwsgi.log 

2、然后在当前路径下创建 uwsgi ⽂件夹

八、配置 Nginx

1、打开 vim /etc/nginx/nginx.conf 把 http{} 内部的 server{} 改为

server { listen 80; server_name localhost; charset utf-8; access_log off; location / { uwsgi_pass 127.0.0.1:8000; include /etc/nginx/uwsgi_params; } location /static { alias /home/collected_static/; } } 

2、以上没有的设置补充上去, 多余的设置都注释掉
3、注意, 在此配置⽂件中不管何处, ⼀旦出现以下配置都直接注释掉

include /etc/nginx/conf.d/*.conf; 
include /etc/nginx/sites-enabled/*; 

九、启动项目

1、⾸先 systemctl start nginx 启动 Nginx
2、然后到项⽬路径下执⾏ uwsgi --ini uwsgi.ini

页面展示
Django项目部署在服务器(配置Django+Mysql8.0+Python+Nginx+uWsgi)