各种云平台(CentOS 7.5)Django项目上线部署Nginx+uWSGI+Django

各种云平台(CentOS 7.5)Django项目上线部署Nginx+uWSGI+Django

第一步需要在CentOS 7.5安装python3版本,因为CentOS自带Python2版本,所有我们就不要安装了。

1.查看是否已经安装Python

CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5。

使用 python -V 命令查看一下是否安装Python

然后使用命令 which python 查看一下Python可执行文件的位置

可见执行文件在/usr/bin/ 目录下,切换到该目录下执行 ll python* 命令查看

python 指向的是python2.7

因为我们要安装python3版本,所以python要指向python3才行,目前还没有安装python3,先备份,备份之前先安装相关包,用于下载编译python3

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

yum install libffi-devel -y

不能忽略相关包,我之前就没有安装readline-devel导致执行python模式无法使用键盘的上下左右键;

然后备份

mv python python.bak

2.开始编译安装python3

去官网下载编译安装包或者直接执行以下命令下载

wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz

解压

tar -xvJf Python-3.7.0.tar.xz

切换进入

cd Python-3.7.0

编译安装

./configure prefix=/usr/local/python3

make && make install

安装完毕,/usr/local/目录下就会有python3了

因此我们可以添加软链到执行目录下/usr/bin

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

可以看到软链创建完成

测试安装成功了没,执行

python -V 看看输出的是不是python3的版本

执行python2 -V 看到的就是python2的版本

因为执行yum需要python2版本,所以我们还要修改yum的配置,执行:

vi /usr/bin/yum

把#! /usr/bin/python修改为#! /usr/bin/python2

同理 vi /usr/libexec/urlgrabber-ext-down 文件里面的#! /usr/bin/python 也要修改为#! /usr/bin/python2

这样python3版本就安装完成;同时python2也存在

python -V 版本3

python2 -V 版本2

3.配置pip

Python3装完后,默认已经安装了pip,此时只要配置下软链接即可使用pip工具:这里无用

ln -s /usr/local/python3/bin/pip3  /usr/bin/pip

为什么不用virtualenv安装虚拟环境,因为python3.5以上就没有了virtualenv包,而是自带了pyvenv,所以就用pyvenv创建虚拟环境非常方便。

创建虚拟环境: /usr/local/python3/bin/pyvenv venv      ---/usr/local/python3/bin/pyvenv  找到pyvenv安装的路径

安装好之后,进入虚拟环境:source venv/bin/activate     source--命令 venv--虚拟环境名,根据自身创建的虚拟环境名变化,后面的bin/activate都一样的

查看已经有的库:pip list , 之后并升级pip, 输入命令为: pip install --upgrade pip

 

以下这段紧参看,对我的安装的版本不重要。

第二步使用virtualenv创建python虚拟环境(对于python3无用,因为python3自带了pyvenv,没有virtualenv

window安装

pip install virtualenv 或 pip3 install virtualenv

Linux和Mac安装

pip install virtualenv 或 sudo pip3 install virtualenv    或 (sudo pip install virtualenv 或 sudo pip3 install virtualenv)

测试是否安装成功

virtualenv --version

创建虚拟环境

进入需要创建虚拟环境的目下, 输入命令:virtualenv venv ,virtualenv --创建命令    venv --虚拟机名

如下图:

 

激活虚拟环境,当当前目录下输入命令: source venv/bin/activate     source--命令 venv--虚拟环境名,根据自身创建的虚拟环境名变化,后面的bin/activate都一样的

如下图:

 

退出虚拟环境输入命令:deactivate

 

第三部启动Django项目

从windows平台的pycharm导出项目的依赖包,输入命令:pip freeze > requirements.txt 或者(pip3 freeze > requirements.txt

将会生成requirements.txt 上传到服务器上去,怎么上传自己可以使用谷歌查询,有多种方式。

如图所示:

等等

在CentOS系统进入自己创建的虚拟环境下载这些依赖包,输入命令: pip install -r requirements.txt 

第四步:启动项目

Django项目配置

安装好Django等必须库后,进入Django项目下,同步并创建数据库,执行:

python manage.py makemigrations
python manage.py migrate

注意:如果出错了,首先检查models.py 里面是不是有什么错误,包括在第一行设置UTF-8编码方式,因为我发现它有时也会出现这种问题!再检查settings.py 关于连接部分的设置对不对,最后检查是不是3306端口没打开!一般都是这几个问题。

建立后台超级用户:

python manage.py createsuperuser

启动自带的服务器,测试是否可以正常运行!(此时settings.py 中的DEBUG = False)输入:

python manage.py runserver 0.0.0.0:8000

在地址栏中输入服务器的地址加端口号,如果能够访问该项目,证明已经前面的步骤成功。

接下来做的:

在项目的根目录新建一个文件file_name.ini, file_name是指文件名,随便取名。

如下图所示:

file_name.ini文件的内容为:

[uwsgi]
# 使用nginx连接时使用
socket =127.0.0.1:8000
# 直接作为web服务器使用,这里配置了会报错
;http=127.0.0.1:8000

# 配置工程目录
chdir=/home/aris/tcdss

# 配置项目的wsgi目录,相对于工程目录
wsgi-file = tcdss/wsgi.py

;wsgi-file = manage.py
;callable = app

# 配置虚拟环境的路径,相对于项目而言
virtualenv = /home/venv

# 配置进程,线程信息
processes = 4
threads = 2

;uwsgi_read_timeout = 600
;touch-reload = /home/pws
;py-auto-reload = 1

; 启用多线程
enable-threads=True
;允许主进程开子进程
master=True

;进程日志
pidfile=uwsgi.pid
;业务日志
daemonize=uwsgi.log

进入虚拟环境安装uwsgi的命令:pip install uwsgi 或 pip3 install uwsgi.

然后输入该命令检查是否安装成功uwsgi:uwsgi --http :8000 --wsgi-file tcdss/wsgi.py    tcdss 项目名   

如图:

 

启动file_name.ini的命令:uwsgi --ini uwsgi.ini      uwsgi.ini就是新建的file_name,这里我新建的名叫uwsgi.ini

安装nginx和配置nginx.conf文件

进入/usr/local/software,

cd /usr/local 

mkdir software

cd software

执行以下命令:

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

下载完成后,执行解压命令:
tar -zxvf nginx-1.13.7.tar.gz
进入解压后的nginx-1.13.7文件夹,依次执行以下命令:

cd nginx-1.13.7
./configure
make
make install

安装好nginx之后启动nginx,输入命令

find / -name nginx

进入到nginx的sbin下, 输入: ./nginx

查看是否启动,ps -ef | grep nginx

启动了访问地址会看到:

启动成功!

配置nginx.conf文件:vim /etc/nginx/nginx.conf

配置的内容如下:

server {
    listen      80;
    server_name  139.159.135.60;  # 服务器ip,
    charset    utf-8;

    client_max_body_size 100M;

    location / {
        include uwsgi_params;
        #uwsgi_pass  unix:/root/zlw/web_flask/flask_uwsgi.sock;  # sock方式跑不通,原因未知
        uwsgi_pass 127.0.0.1:8000;
    }

    # 指定静态文件路径
   location /media  {
      alias  /home/aris/tcdss/media;
   }
   location /static {
      alias  /home/aris/tcdss/static;
   }
}

将原来的server注释掉,配置成自己的。

操作nginx的命令如下:查看原博客路径:https://blog.csdn.net/qq_35888875/article/details/80937731

二、nginx的启动、停止和重启
1、启动前的配置
因为Apeache占用80端口,Apeache尽量不要修改,演示服务器没安装Apeache,所以使用默认的端口80。

如需修改:linux 下修改路径/usr/local/nginx/conf/nginx.conf;

Windows 下修改路径\conf\nginx.conf。

默认端口为80,localhost修改为你服务器ip地址

 

2、nginx启动
方式一:nginx安装目录地址 -c nginx配置文件地址

[root@localhost sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
方式二:进入nginx的安装目录,进入/sbin并执行./nginx命令即可
[root@localhost /]# cd usr/local/nginx/sbin
[root@localhost sbin]#./nginx
使用命令netstat -ntpl查看是否启动成功
[root@localhost sbin]#.netstat -ntpl
[root@localhost conf]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name               
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      18312/nginx: master 
如上 即为启动成功。

3、nginx停止
nginx的停止有三种方式:

1).通过命令停止
[root@localhost ~]# nginx -s reload
2).通过杀死进程
(1)、查看进程号
[root@localhost ~]# ps -ef|grep nginx


(2)、执行kill命令
a.从容停止
[root@localhost ~]# kill -QUIT 2072
b.快速停止
[root@localhost ~]# kill -TERM 2132
[root@localhost ~]# kill -INT 2132
3). 强制停止
[root@localhost ~]# pkill -9 nginx

4、nginx重启
1、验证nginx配置文件是否正确
方法一:进入nginx安装目录sbin下,输入命令./nginx -t或在服务器任意地方输入nginx -t
[root@localhost sbin/]# ./nginx -t
[root@localhost /]# mginx -t
看到如下显示nginx.conf syntax is ok

nginx.conf test is successful

说明配置文件正确!

 

方法二:在启动命令-c前加-t


2、重启nginx服务
方法一:进入nginx可执行目录sbin下,输入命令./nginx -s reload 即可或者在服务器任意地方输入nginx -s reload
[root@localhost sbin/]# ./nginx -s reload
[root@localhost /]# mginx -s reload
方法二:查找当前nginx进程号,然后输入命令:kill -HUP 进程号 实现重启nginx服务
[root@localhost /]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name        
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4245/nginx: worker
[root@localhost /]# kill -HUP 4245
[root@localhost /]# 

三、测试
因为我们设置的端口是默认的80端口,所以直接输入服务器ip即可访问。

 

第五步安装数据库mysql

2、安装mysql 8.0.13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值