Vue+Django部署流程
1.安装gcc环境
yum -y install gcc gcc-c++ kernel-devel //安装gcc、c++编译器以及内核文件
2.安装python3环境
(1)下载安装包
cd /usr/local
mkdir python36 #创建目录
在 /usr/local/python36下执行下面的命令
wget "https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz"
(2)解压安装包
tar -xvf Python-3.6.3.tgz
(3)编译安装
cd python3.6.3
./configure --prefix=/usr/local/python36
make
先安装:yum -y install zlib*,再执行下面的,否则会报错
make install
如果通过python -m pip install 安装软件出现错误ImportError: cannot import name 'HTTPSHandler'
缺少openssl的开发环境,我们继续安装
yum install openssl-devel
(4)设置软连接 打死不要命名python为python3的软链!!!
ln -s /usr/local/python36/bin/python3.6 /usr/bin/python3
3.安装pip3
wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2
python3 setup.py build
python3 setup.py install
如果没有意外的话,pip安装完成
设置软连接
ln -s /usr/local/python36/bin/pip3 /usr/bin/pip3
4.安装MySQL数据库
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update yum install mysql-server
权限设置:
chown mysql:mysql -R /var/lib/mysql
启动 MySQL:
systemctl start mysqld
查看 MySQL 运行状态:
systemctl status mysqld
Mysql安装后需要做的
Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码:
mysqladmin -u root password "new_password";
现在你可以通过以下命令来连接到Mysql服务器:
mysql -u root -p Enter password:*******
创建数据库:如果数据库不存在则创建,存在则不创建,.创建api_test数据库,并设定编码集为utf8
CREATE DATABASE IF NOT EXISTS api_test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
5.安装nginx
添加源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装Nginx
通过yum search nginx看看是否已经添加源成功。如果成功则执行下列命令安装Nginx。
yum install -y nginx
安装完成后,输入nginx --help ,如果出现如下错误:
解决Nginx: [error] open() Nginx.pid
sudo /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx执行程序路径:/usr/sbin/
nginx配置文件路径: /etc/nginx
nginx重启指令:/usr/sbin/ nginx -s reload
进入/etc/nginx/conf.d
创建一个.conf文件,这里创建的是:speedpost.conf
6.安装uwsgi
python3 -m pip install uwsgi
如果出现:uwsgi: command not found
解决办法:找到uwsgi执行位置,建立软链接
[root@CentOS6 home]# find / -name uwsgi
/usr/local/python36/bin/uwsgi
[root@CentOS6 home]# ln -s /usr/local/python36/bin/uwsgi /usr/bin/uwsgi
# django项目根目录 # 执行启动项目 uwsgi --ini uwsgi.ini
7.前端部署
(1)进入到Vue工程根目录interfacetesting\frontend 打开控制台,运行npm run build,打包生成dist文件夹
(2)在Linux系统中,创建要部署的工程文件夹,比如我在/home下,通过mkdir speedpost创建目录。
(3)将本地的Django工程拷贝到speedpost目录下
前端的APP就是frontend下的刚打包的dist,如果需要更新代码,直接重新打包替换即可。
8.后台部署
在/home/speedpost目录下,执行python3 -m pip install -r requirement.txt安装django所需的依赖
如果出现jdango-suit版本所需版本找不到的问题,按如下操作:
安装jdango-suit V2版本
python3 -m pip install https://github.com/darklow/django-suit/tarball/v2
依赖安装完成后,通过navicat连接MySQL数据库
创建数据库api_test,注意创建数据库的时候要设置数据库的编码为utf-8
修改/home/speedpost/api_automation_test/settings.py中 数据库配置
重点修改这几个地方:
ALLOWED_HOSTS = [ '127.0.0.1','192.168.49.149','192.168.49.169']
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'api_test',
'USER': 'root',
'PASSWORD': '123456';
'HOST': 'localhost',
'PORT': '3306',
}
}
创建模型python3 manage.py makemigrations
创建表python3 manage.py migrate
创建超级用户python3 manage.py createsuperuser
用户名:admin
密码:adminadmin
运行启动django服务:python3 manage.py runserver 0.0.0.0:8000
运行成功,则说明项目启动没有问题,可退出
9 配置nginx
进入/etc/nginx/conf.d
输入命令 vim speedpost.conf
配置如下:
server {
listen 8080;
server_name 127.0.0.1;
charset utf-8;
location / {
root /home/speedpost/frontend/dist;
index index.html;
try_files $uri $uri/ /index.html last;
}
location ^~ /admin/ {
root /home/speedpost/frontend/dist;
index index.html;
try_files $uri $uri/ /index.html last;
}
}
server{
listen 8000;
server_name 127.0.0.1;
location / {
uwsgi_pass 127.0.0.1:9000;
include /etc/nginx/uwsgi_params;
}
location /static {
alias /home/speedpost/static/;
break;
}
}
10.配置uwsgi
在项目的根目录下创建uwsgi.ini
配置如下:
[uwsgi]
socket = 0.0.0.0:9000
chdir = /home/speedpost/
wsgi-file = api_automation_test/wsgi.py
master = true
processes = 4
threads = 2
vacuum = true
buffer-size = 65536
11.启动服务
在/home/speedpost/目录下 输入指令启动uwsgi
uwsgi --ini uwsgi.ini
在/etc/nginx目录下 输入指令重启nginx:
nginx -s reload
django后台无法访问静态文件:
python3 manage.py collectstatic