【超详细】CentOS7.6+Django3+Python3.7+Mysql+uWSGI+Nginx部署Django项目

1. 文档说明

(1) 操作系统选用CentOS 7.6

(2) 默认路径为root目录

2. 配置Anaconda

1)wege下载命令

wget https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh

(2)执行安装命令

sh Anaconda3-2020.07-Linux-x86_64.sh

(3)环境变量配置
输入编辑命令:vim /root/.bashrc
按i进入编辑模式,在最后添加:
export PATH="/root/anaconda3/bin:$PATH"
刷新环境变量:source ~/.bashrc

(4)更新相关包(标注版本号的是对版本有要求)

conda upgrade --all
conda install python==3.7.9
conda install Django==3.0.3
pip install django-simple-captcha
conda install mysqlclient

3. 配置Mysql

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

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

(2)mysql数据库设置

启动mysql systemctl start mysqld.service
grep "password" /var/log/mysqld.log 找密码
进入数据库 mysql -uroot -p
修改密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

(3)开启远程访问

grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;
flush privileges;
exit

(4)更改mysql语言

vi /etc/my.cnf

新增四行代码

[client]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci

在这里插入图片描述
重启mysql service mysqld restart
(5)远程登录,新建数据库,字符集为utf8,排序规则为utf8_general_ci。然后导入相关sql文件

4. 配置Django

(1)修改项目根目录下settings.py中数据库密码
(2)进入项目目录,输入如下命令进行迁移

python manage.py makemigrations --empty yourapp
python manage.py makemigrations
python manage.py migrate yourapp
python manage.py migrate

远程登陆数据库,可以看到生成了数据表.
(3)创建超级用户并进行相关设置

python manage.py createsuperuser 

5. 配置Nginx

(1)安装Nginx yum install nginx
(2)找到Nginx程序 cd /usr/sbin/
(3)检查Nginx是否能够正常运行 ./nginx -t
(4)运行Nginx ./nginx

6.配置uWSGI

(1)安装uWSGI pip install uwsgi
(2)配置uWSGI文件
在/root/medicine/创建uwsgi.ini文件

vim /root/medicine/uwsgi.ini

把下面这些内容复制进去(具体配置可根据需求进行更改)

#添加配置选择
[uwsgi]
#配置和nginx连接的socket连接
socket=127.0.0.1:8997
#配置项目路径,项目的所在目录
chdir=/root/medicine/
#配置wsgi接口模块文件路径,也就是wsgi.py这个文件所在的目录名
wsgi-file=medicine/wsgi.py
#配置启动的进程数
processes=4
#配置每个进程的线程数
threads=2
#配置启动管理主进程
master=True
#配置存放主进程的进程号文件
pidfile=uwsgi.pid
#配置dump日志记录
daemonize=uwsgi.log

(3)启动uwsgi服务 uwsgi --ini uwsgi.ini
(4)配置nginx文件

# 进入uwsgi配置文件路径
cd /etc/nginx/
# 编辑nginx.conf文件
vim nginx.conf
# 把所有的内容都删掉,替换成下面这些
user root;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen 80;
        server_name  127.0.0.1:80; #改为自己的域名,没域名修改为127.0.0.1:80
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8997;  #端口要和uwsgi里配置的一样
           uwsgi_param UWSGI_SCRIPT project.wsgi;  #wsgi.py所在的目录名+.wsgi
           uwsgi_param UWSGI_CHDIR /root/project/; #项目路径
           
        }
        location /static/ {
        alias /root/project/static/; #静态资源路径
        }
    }
}

7.一些报错问题解决办法

(1)ImportError: libXrender.so.1: cannot open shared object file: No such file or directory

yum install libXrender.x86_64

(2)ImportError: libXext.so.6: cannot open shared object file: No such file or directory

yum install libXext libSM libXrender

(3)uwsgi: error while loading shared libraries: libicui18n.so.58: cannot open shared object file: No such file or directory

ln -s /root/anaconda3/lib/libicui18n.so.58 /lib64/libicui18n.so.58
ln -s /root/anaconda3/lib/libicuuc.so.58 /lib64/libicuuc.so.58
ln -s /root/anaconda3/lib/libicudata.so.58 /lib64/libicudata.so.58

(4)uwsgi: /lib64/./libstdc++.so.6: version CXXABI_1.3.8' not found (required by /lib64/libicui18n.so.58) uwsgi: /lib64/./libstdc++.so.6: versionCXXABI_1.3.9’ not found (required by /lib64/libicui18n.so.58)
uwsgi: /lib64/./libstdc++.so.6: version CXXABI_1.3.8' not found (required by /lib64/libicuuc.so.58) uwsgi: /lib64/./libstdc++.so.6: versionCXXABI_1.3.9’ not found (required by /lib64/libicuuc.so.58)

cd /root/anaconda3/lib
cp libstdc++.so.6.0.26 /lib64/
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.26 libstdc++.so.6
ldconfig

(5)ImportError: /lib64/liblzma.so.5: version `XZ_5.2’ not found (required by /root/anaconda3/lib/python3.7/site-packages/rdkit/Chem/…/…/…/…/libboost_iostreams.so.1.73.0)

cd /lib64
rm -rf liblzma.so.5
ln -s /root/anaconda3/lib/liblzma.so.5.2.5 /lib64/liblzma.so.5

(6)probably another instance of uWSGI is running on the same address (127.0.0.1:8997).

fuser -k 8997/tcp

(7)ImportError: /lib64/libz.so.1: version `ZLIB_1.2.9’ not found (required by /root/anaconda3/lib/python3.7/site-packages/rdkit/Chem/…/…/…/…/././libpng16.so.16)

tar -xvf zlib-1.2.9.tar.gz
cd zlib-1.2.9
./configure; make; make install
cd /lib64
rm -rf libz.so.1
ln -s /usr/local/lib/libz.so.1.2.9 /lib64/libz.so.1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值