django2.2+cent7.8+nginx+uwsgi+python3.7部署

一、设置python3环境

1.1下载安装包

cd /opt/
#opt目录下下载
这种方式特别慢,推荐用xftp传文件
wget https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz

1.2安装

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make


tar -xzvf /opt/Python-3.7.7.tgz -C /usr/local/src/#src是存放源码的目录,解压到src目录
#tar -xzvf Python-3.7.7.tgz -C /usr/local/src/#若已经在opt目录下,
cd /usr/local/src/Python-3.7.7
#3.7要安装:yum -y install libffi-devel  tk-devel

./configure --prefix=/usr/local/python3
make && make install

1.3添加环境变量

#echo $PATH#查看环境变量
cd /etc/profile.d/
vi python3.sh
export PATH="$PATH:/usr/local/python3/bin"#写入文件
esc,:wq
source ../profile#重载文件
echo $PATH#查看当前环境变量是否添加


#成功
[root@localhost ~]# python3
Python 3.7.7 (default, May 28 2020, 14:33:29) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

 1.4安装requirements包和uWSGI

[root@localhost wwwroot]# pip3 list
Package            Version
------------------ -------
appdirs            1.4.4
distlib            0.3.0
Django             2.2
filelock           3.0.12
importlib-metadata 1.6.0
mysqlclient        1.4.6
Pillow             7.1.2
pip                20.1.1
PyMySQL            0.9.3
pytz               2020.1
setuptools         41.2.0
sqlparse           0.3.1
supervisor         4.2.0
uWSGI              2.0.18

使用python3.7+django2.2+pymysql时,后面会碰到的问题:django运行core错误

mysqlclient 1.3.13 or newer is required; you have 0.9.2

修改\Python37\Lib\site-packages\django\db\backends\mysql下的base.pyoperations.py文件

二、设置mysql环境

centos 7.x 安装/卸载MySQL

###mysql80修改密码命令
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

三、项目

3.1项目目录

mysite为项目

/data/wwwroot/mysite
/data/wwwroot/mysite/manage.py

 Centos7部署Django项目

3.2 检查项目是否能运行

mysite目录下

python3 manage.py runserver 127.0.0.1:8001

查看防火墙状态

1.查看防火墙状态:
firewall-cmd --state 
2.启动防火墙
systemctl start firewalld
3.关闭防火墙
systemctl stop firewalld
4.检查防火墙开放的端口
firewall-cmd --permanent --zone=public --list-ports
5.开放一个新的端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
6.重启防火墙
firewall-cmd --reload
7.验证新增加端口是否生效
firewall-cmd --zone=public --query-port=8080/tcp
8.防火墙开机自启动
systemctl enable firewalld.service
9.防火墙取消某一开放端口
firewall-cmd --zone=public --remove-port=9200/tcp --permanent

 

3.3 static文件整理(解决后台admin样式丢失问题)

cd /data/wwwroot/mysite
python3 manage.py collectstatic

四、uwsgi

 安装

pip3 install uwsgi##之前已经安装过

 软连接

ln -s /usr/local/python3/bin/uwsgi  /usr/bin/uwsgi

 

切换到项目目录下

cd /data/wwwroot/mysite

执行

vim mysite.xml

###输入
<uwsgi>     
    <socket>127.0.0.1:8001</socket># 内部端口             
    <chdir>/data/wwwroot/mysite/</chdir>#项目路径 
    <module>mysite.wsgi</module>          
    <processes>4</processes> #进程数    
    <daemonize>uwsgi.log</daemonize>#日志文件
</uwsgi>

查看运行的uwsgi

ps -ef | grep uwsgi

kill进程

kill -9 3539

重新启动uwsgi,在项目根目录下,mysite.xml所在位置

uwsgi mysite.xml

 

五、nginx

 

 5.1下载解压安装

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

###安装依赖,不知道必不必要

#安装pcre
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.37.tar.gz
tar zxvf pcre-8.37.tar.gz
#到pcre-8.37目录下执行以下
./configure
make && make install
#安装zlib
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

#安装nginx
cd /usr/local/src
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -xzvf nginx-1.18.0.tar.gz
#进入解压缩目录
cd nginx-1.18.0
./configure
make
make install

 5.2 测试

测试下启动nginx,访问站点

[root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx

 从本地访问服务器ip地址

Nginx 安装配置

nginx常用命令(cent7.8)

5.3 设置 nginx.conf

[root@localhost sbin]# cd /usr/local/nginx/conf

[root@localhost conf]# vim nginx.conf

 修改sever

server {
        listen       80;
        server_name  localhost;
        charset utf-8;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8001;#同 .xml
            uwsgi_param UWSGI_SCRIPT mysite.wsgi;
            uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite;
            #root   html;
            #index  index.html index.htm;
        }
        location /static/{
        alias /data/wwwroot/mysite/static/;##多个static是all_static_files,static文件整理后得到的all_static_files
        }
.....

修改完nginx.conf后,重新启动

cd /usr/local/nginx/sbin/

./nginx -s reload

参考 Django2.2教程

5.4自启动

nginx自启动设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值