把Django项目部署到服务器

入门级菜鸟教程

为你的服务器安装系统

我这里装的是 CentOS 7.2, 没有带其他开发环境

配置开发环境

因为要部署的是 Django 项目, 基于 Python3;
另一方面, 代码是在 windows 开发然后上传到 github, 所以 git 也是必不可少

安装git

1
yum install git

安装python

好像没有找到直接安装的方法, 一般的方法是下载源码自己编译, 所以就按这个来吧

安装编译库

1
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readlin e-devel tk-devel gcc make libffi-devel

安装wget

先添加 epel

1
yum -y install epel-release

然后就可以安装 pip

1
yum install python-pip

pipwget

1
2
pip install --upgrade pip
pip install wget

下载python3.7.3源码

1
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

解压

1
tar -zxvf Python-3.7.3.tgz

编译

要先进入解压后的目录

1
2
./configure prefix=/usr/local/python3 
make && make install

添加软连接

1
2
3
4
5
6
7
8
9
10
#将原来的链接备份
mv /usr/bin/python /usr/bin/python.bak
#添加python3的软链接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
#添加python3的软链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3.7
#添加 pip3 的软链接
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3.7
#测试是否安装成功了
python -V

更改yum配置

因为yum是用py2运行的, 不更改配置会导致yum运行不了

1
2
3
4
vi /usr/bin/yum 
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
把 #! /usr/bin/python 修改为 #! /usr/bin/python2

安装Django

1
pip3.7 install Django

从git拉取代码

1
git clone ...

准备运行服务器的时候遇到问题

Django 2.2SQLite 的最低版本支持改到了 3.8.3, 而 CentOS 7 默认是 3.7.17, 所以要更新一下, 可以参考这个博客

在后台运行代码

因为是 ssh 连接的, 所以直接运行的话, 退出 ssh 连接, 进程就被kill了, 在这里用 setsid 方法

1
setsid python manage.py runserver

要更新代码的话

ps -ef 可以看到进程id, 用 kill -9 {id} 结束进程, 然后拉取代码, 重新run起来就行了

测试