Centos7部署Django+Vue项目

2021-02-21  本文已影响0人  猪儿打滚

1、python3预置环境

sudo yum -y update
sudo yum -y wget 或 sudo yum install wget
yum -y groupinstall "Development tools"  # 如果报错指定组没有可安装或升级的软件包,则yum clean all后再执行安装
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
yum install python3-devel

2、安装python3

ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

注: 如果软链建立完成,但是却无法使用的时候执行下面命令:
     mv pip pip2  # (将文件 pip 更名为 pip2 )
     ln -s /usr/local/python3/bin/pip3 /usr/bin/pip 

2、虚拟环境(可选)

pip3 install virtualenv
# 创建软链接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv3
mkdir -p /data/env  # 存放虚拟环境
# 创建虚拟环境
virtualenv3 --python=/usr/bin/python 项目名    

# 进入指定的环境bin目录
cd /data/env/环境名称/bin 
# 开启虚拟环境(启动后出现 (qize_demo),说明是成功进入虚拟环境。)
source activate 
# 退出虚拟环境的命令
deactivate.bat

3、部署django项目

mkdir -p /data/wwwroot  # 存放web项目
sudo python -m pip install --upgrade --force pip 
sudo pip install setuptools==33.1.1
# 登录mysql
mysql -u用户名 -p
# 创建项目对应的数据库;判断原来不存在,则创建数据库,并指定编码格式和校验集:
 create database if not exists xxx  default character set utf8 collate utf8_general_ci;
# 创建成功,使用该表
use xxx
# 导入数据
source 脚本所在的路径/数据库脚本名字.sql

    # 如果数据库创建错误,则删除
    drop database xxx;
    # 如果数据库已创建,但是编码忘了设置,则进入该    库,然后设置编码为utf8
    set names utf8;
ALLOWED_HOSTS = ['*']
# 后台启动django服务,输出日志到日志文件中,内容为标准输出和标准错误
MYDATE=`date +%Y%m%d`
ALL_LOGFILE=/data/wwwroot/xxx/log/log_$MYDATE

nohup python3 manage.py runserver 0.0.0.0:8000 > ${ALL_LOGFILE} 2>&1 &

4、部署Vue项目

# 下载node,建议下载到/usr/local/lib
wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-x64.tar.xz
# 解压node
tar -xvf node-v10.16.3-linux-x64.tar.xz  
# 修改node目录名
mv node-v10.16.3-linux-x64 nodejs
#  创建软链接(注意,源文件需要是绝对路径)
ln -s /usr/local/lib/nodejs/bin/node /usr/local/bin/node
ln -s /usr/local/lib/nodejs/bin/npm /usr/local/bin/npm
# 查看版本,正确则OK
npm -v 
node -v
# 会安装到上个步骤安装的nodejs/bin目录下
npm install pm2 -g
#不知道为啥,-g在linux中不起作用,需要手动 创建软链接来设置全局(默认安装路径是nodejs/bin)
ln -s /usr/local/lib/nodejs/bin/pm2 /usr/local/bin/
// 换成服务器的IP和django项目端口
let host = 'http://xxxx:8000';
export {host};
const fs = require('fs');
const path = require('path');
const express = require('express');
const app = express();

app.use(express.static(path.resolve(__dirname, './dist')))
//读取目录下的单页面文件(index.js),监听8080端口。
app.get('*', function(req, res) {
    const html = fs.readFileSync(path.resolve(__dirname, './dist/index.html'), 'utf-8')
    res.send(html)
})

app.listen(8080);

未完待续

后续会加上Nginx+uwsgi

参考文章

vue项目部署参考文章

上一篇下一篇

猜你喜欢

热点阅读