centos7部署django项目部署过程
展开阅读全文

准备工作

系统版本: CentOS 7.6 64位 (腾讯云虚拟机)
python版本: 官方python3.6.3
django版本: django 2.1
uwsgi版本: uwsgi 2.0.8
nginx版本: nginx 1.13.7
postgresql版本: (PostgreSQL) 9.2.24
可连接到服务器的工具 比如: FinalShell

安装 通过ssh连接到服务器, 默认使用root身份登录centos系统(默认在/root路径下)

这里简书夜夜月是指点我的大佬的文章地址

下面是一行命令,下面的说明是上面命令的说明

1. 安装各类基础模块

yum install gcc-c++
// 说明: 为centos系统增加编译功能
yum install wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
// 说明: 安装这些模块都是为了成功编译安装python3,防止出现各种异常
yum install libxml*
// 说明: 安装这个模块是为了让uwsig支持使用“-x"选项,能通过xml文件启动项目

2. 编译安装python3

进入home路径(默认是在 /root, 切换到 /home),执行以下命令

wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
 
// 说明: 下载python3.6.3 
tar -zxvf Python-3.6.3.tar.gz
 
// 说明: 解压 下载的压缩包
cd Python-3.6.3
./configure --prefix=/usr/local/python3
 
// 说明: 切换到解压后的python-3.6.3目录, 将python3安装到/usr/local/python3/路径下        
make -j2
make install -j2
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
 
// 说明: 上两条命令是编译, 下两条命令是创建python3和pip3的软连接到 /usr/bin/ 方便在终端中使用python3和pip3 命令 

3. 将本地项目上传到服务器

1.可通过 将本地项目上传到github, 并在服务器系统上通过git clone 将项目拉取到服务器, 实现项目的上传;

2.可通过 FinalShell(我在用的SSH工具, 自带项目上传和下载)自带的功能实现项目的上传;

3.可通过在服务器配置samba来实现本地和服务器共享文件;

4. 安装postgresql, 并创建项目需要的数据库

yum install postgresql-server postgresql-contrib -y
 
// 说明: 安装postgresql
postgresql-setup initdb
 
// 说明: 初始化数据库
systemctl enable postgresql //开启启动
systemctl start postgresql 
 
// 说明: 启动数据库
su - postgres // linux 系统下postgresql 数据库默认的超级管理员
 
psql  // 连接数据库 命令行变成: postgtes=# 这种形式就是对的
 
CREATE USER user1 WITH PASSWORD "111111";  // 创建用户
 
\h create database;  // 查看创建数据库的命令, 网上现查的
 
CREATE DATABASE blog 
    WITH OWNER = user1
    ENCODING = utf8;  // 创建数据库并指定拥有者和字符集
 
\d blog;  // 查看数据库信息
 
\q  // 退出数据库连接
 
exit // 退出postgres用户
 
systemctl restart postgresql.server   // 重启postgresql数据库
// systemctl start  postgresql.service  // 启动数据库
// systemctl stop postgresql.service   // 停止数据库
// systemctl restart postgresql.service   // 重启数据库
 
// 说明: 创建django项目需要的数据库
vim /var/lib/pgsql/data/pg_hba.conf
// 将TYPE下面的local的METHOD改为trust
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
 
// 将 replication privilege 改为 md5 
local   replication     postgres                                md5
host    replication     postgres        127.0.0.1/32            md5
host    replication     postgres        ::1/128                 md5
 
// 重启数据库
systemctl restart postgresql.service   // 重启数据库
 
// 说明: 配置postgresql数据库
// 切换到项目manage.py所在的目录
cd /home/www/mysite
 
// 执行数据库迁移
python3 manage.py makemigtations
python3 manage.py migtare
 
// 迁移成功后, 创建超级用户,根据提示填写姓名邮箱及密码
python3 manage.py createsuperuser

5. 安装uwsgi并配置

pip3 install uwsgi
 
// 说明: 通过pip3安装uwsgi    
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
 
// 说明: 为了方便在终端中使用uwsgi命令
// 切换到项目的路径下(这个路径是manage.py同目录的路径)如:
cd /home/www/mysite
 
// 创建一个myproject.xml
vim myproject.xml
 
// 输入如下内容
<uwsgi>
    <socket>127.0.0.1:8997</socket> //<!-- 内部端口,自定义 -->
        <chdir>/home/www/mysite</chdir> //<!-- 项目路径 -->
            <module>mysite.wsgi</module>
                <processes>2</processes> //<!-- 进程数 --> 
    <daemonize>uwsgi.log</daemonize> //<!-- 日志文件 -->
</uwsgi>

6. 安装nginx及配置nginx.conf文件

// 切换到home下
cd /home
 
// 下载nginx
wget http://nginx.org/download/nginx-1.13.7.tar.gz
 
// 解压
tar -zxvf nginx-1.13.7.tar.gz
 
// 切换到nginx1.13.7目录
cd nginx-1.13.7
 
// 编译
./configure
make
make install
 
// 说明: 安装nginx
// 配置nginx.conf(默认在/usr/local/nginx/conf/中)
vim /usr/local/nginx/conf/nginx.conf
 
// 在http{}花括号体中添加下面内容
server {
    listen 8996; // #暴露给外部访问的端口
    server_name localhost;
        charset utf-8;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8997; // #外部访问8996就转发到内部8997
    }
    location /static/ {
        alias /home/www/mysite/blog/static/; // #项目静态路径设置
    }
}
 
// 说明: 配置nginx.conf文件, 其中转发端口要和uwsgi对应    
// 切换到 nginx 可执行文件目录
cd /usr/local/nginx/sbin/
 
// 这条命令检查配置文件nginx.conf是否有错
./nginx -t  
 
// 开启nginx服务
./nginx
 
// 检查nginx是否开启
ps -aux | grep nginx 
 
// 说明: 开启nginx

7. 访问项目页面

// 切换到项目manage.py所在目录
cd /home/www/mysite
 
// 执行下面命令启动
uwsgi3 -x myproject.xml
// 启动成功后访问 http://192.168.1.111:8996即可访问页面, IP必须是你自己的IP