CentOS7下部署Django项目

部署是基于centos7+nginx+uwsgi+python3+django+mysql

一.安装mysql

1 下载并安装MySQL官方的 Yum Repository

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。

yum -y install mysql57-community-release-el7-10.noarch.rpm

安装MySQL服务器。

yum -y install mysql-community-server

2 MySQL数据库设置

启动MySQL

systemctl start  mysqld.service

配置开机自启

systemctl enable  mysqld.service

查看MySQL运行状态

systemctl status mysqld.service

通过如下命令在日志文件中找出密码:

grep "password" /var/log/mysqld.log

进入数据库

mysql -uroot -p

输入初始密码,就是grep “password” /var/log/mysqld.log得到的密码

xxx

MySQL默认必须修改密码之后才能操作数据库

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

如果要修改为root这样的弱密码,需要进行以下配置:

查看密码策略:show variables like '%password%';
修改密码策略:vi /etc/my.cnf
#添加validate_password_policy配置
validate_password_policy=0
#关闭密码策略
validate_password = off

重启服务:

systemctl restart mysqld

3 开启mysql的远程访问

允许所有ip访问,以root用户形式,**如果所有用户可以将root改为:***
grant all privileges on *.* to 'root'@'192.168.0.1' identified by 'password' with grant option;

执行命令:

flush privileges; 
exit;

默认会监听3306端口:
在这里插入图片描述

4 修改mysql的字符编码(不修改会产生中文乱码问题)

显示编码格式:

show variables like '%character%';

修改/etc/my.cnf

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

Navicat连接:
在这里插入图片描述
如果提示连接不到mysql服务的话,需要看一下阿里云后台有没有开启3306端口。

二.安装python3

一、更新系统软件包

yum update -y

二、安装软件管理包和可能使用的依赖

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

三、下载Pyhton3到/usr/local 目录

wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
解压:
tar -zxvf Python-3.6.6.tgz

cd进入 Python-3.6.6路径:
编译安装到指定路径

./configure --prefix=/usr/local/python3

安装python3:

make & make install

安装完成之后 建立软链接 添加变量 方便在终端中直接使用python3
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3

Python3安装完成之后pip3也一块安装完成,不需要再单独安装

一样建立软链接

ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

四、查看Python3和pip3安装情况
在这里插入图片描述

三.python3安装django和uwsgi

命令:

pip3 install uwsgi
pip3 install django   可以指定版本

uwsgi:

django自带的wsgiref 在调试模式下使用的wsgi的文件,网关接口,协议

uwsgi:协议

uWSGI:具体实现方式

在这里插入图片描述

四.将项目copy到centos7中

可以使用winSCp或者ftp等软件将项目上传到服务器中

这里使用winSCp,将项目放到data文件夹下:
在这里插入图片描述
将本地项目中所有的依赖包导出来,这里放到项目中:

pip freeze > requirements.txt

安装requirements.txt里的依赖:

pip install -r requirements.txt

安装成功:
在这里插入图片描述
启动项目:

python3 manage.py runserver 0.0.0.0:9009

启动成功:
在这里插入图片描述
报错:
在这里插入图片描述
需要将项目中settings.py的ALLOWED_HOSTS值改为*代表所有ip都可以访问:
在这里插入图片描述
继续修改settings.py文件。将数据库配置信息改为上面服务器中的:
在这里插入图片描述
访问成功:
在这里插入图片描述
编写启动uwsgi的配置文件,命名为uwsgi.ini:

[uwsgi]
#http = :8080
socket = :9090
#项目路径
chdir= /data/wwwroot/crm
# uwsgi的文件
wsgi-file= crm/wsgi.py
# 虚拟环境
# virtualenv = /root/env
# 进程个数
processes = 2
# 线程个数
threads=2
# 后台启动,指定日志的输出
# daemonize=/data/crm/django.log
# 清除临时文件
vacuum = true
# python文件发生改变自动重启
py-autoreload=1

五.安装nginx

下载nginx:

wget http://nginx.org/download/nginx-1.13.7.tar.gz

下载完成后,执行解压命令:

tar -zxvf nginx-1.13.7.tar.gz

进入解压后的nginx-1.13.7文件夹,依次执行以下命令:

./configure
make
make install

nginx一般默认安装好的路径为/usr/local/nginx
在/usr/local/nginx/conf/中先备份一下nginx.conf文件

cp nginx.conf nginx.conf.bak
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen       80;
        server_name  自己的ip;
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 0.0.0.0:9090; #注意这里端口要和上面的uwsgi端口一直
           
        }
        # 静态文件
        location /static/ {
        alias data/crm/static/; 
        }
    }
}

进入/usr/local/nginx/sbin/目录
执行./nginx -t命令先检查配置文件是否有错,没有错就执行以下命令:

./nginx
终端没有任何提示就证明nginx启动成功。

执行uwsgi.ini配置文件:

uwsgi --ini /etc/uwsgi.ini  #后面要改成你自己的路劲

进入/usr/local/nginx/sbin/目录,执行:

./nginx -s reload

访问:
在这里插入图片描述

线上部署样式没有生效的问题:

1.在settings.py文件尾部加入:

STATIC_ROOT = os.path.jon(BASE_DIR,'要收集的文件夹名字')  #设置一个目录,把后台CSS样式放到这个目录里

2、收集CSS样式,在终端输入:

python manage.py collectstatic

最后结果:
在这里插入图片描述
最后执行一下数据库同步数据库指令生成表:

python3 manage.py migrate

在这里插入图片描述
数据库中表创建成功:
在这里插入图片描述
到此部署全部结束。

猜你喜欢

转载自blog.csdn.net/qq_39253370/article/details/106454587