dapi 基于Django的轻量级测试平台七 怎样部署到生产环境

前置条件:
以下所有操作均在root账号下面进行
如果不是root用户
请注意权限问题
因为是自己搭的服务器
所以无所谓安全问题
如果是公司的服务器
请不要使用root账号

 

一、安装uWSGI服务器:

当我们在本地运行Django时

一般是python manage.py runserver

但是在服务器上面是结合uWSGI

 

pip install uwsgi
安装uWSGI
uWSGI是Python的Web服务器
类似于Java的Tomcat

find / -name uwsgi
找到uwsgi的执行位置

ln -s /usr/local/python/bin/uwsgi /usr/bin/uwsgi
创建软连接

pip install uwsgitop
安装uWSGI性能监控库
类似于top命令

find / -name uwsgitop
找到uwsgitop的执行位置

ln -s /usr/local/python/bin/uwsgitop /usr/bin/uwsgitop
创建软连接

 

uwsgi.ini文件:

[uwsgi]
socket = 127.0.0.1:3031
# Socket套接字

chdir = /django/dapi
# 工程的绝对路径
wsgi-file = dapi/wsgi.py
# wsgi.py的相对路径

master = true
# 启用主进程
processes = 4
# 4个线程
threads = 2
# 2个进程
# uWSGI默认单个进程和单个线程

max-????requests = 65535
# 最大并发请求数

stats = 127.0.0.1:9191
# stats子系统将uWSGI的内部统计信息导出为JSON

vacuum = true
# 当服务停止的时候,自动移除Unix Socket和pid文件

pid = %(chdir)/uwsgi.pid??????
# pid

daemonize= %(chdir)/uwsgi.log
# 使进程在后台运行,并将日志打到指定的日志文件

 

二、上传代码:


mkdir /django
在根目录下面创建django目录
把dapi工程代码上传到此目录下面

chmod -R 777 /django
赋予此目录及其所有的子目录最高读写权限

cd /django/dapi
进入dapi工程根目录

pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2
安装适配Django2.0以后版本的xadmin

pip install -r requirements.txt
安装工程所需的依赖

 

三、迁移MySQL数据库:

dapi 基于Django的轻量级测试平台七 怎样部署到生产环境

 

 

 PyMySQL年久失修,
对Django2.0以后的版本支持不是很好
有2个小BUG
vim /usr/local/python/lib/python3.6/site-packages/django/db/backends/mysql/base.py
把第35~36行注释掉
vim /usr/local/python/lib/python3.6/site-packages/django/db/backends/mysql/operations.py
把145~146注释掉

 

请注意:
迁移之前要把interface/migrations目录下面除了__init__.py以外的所有文件都删掉


python manage.py makemigrations
激活模型

报错:

dapi 基于Django的轻量级测试平台七 怎样部署到生产环境

 

 

django.db.utils.ProgrammingError: (1146, "Table ‘dapi.product_info‘ doesn‘t exist")
分析了一下原因
mysql服务已经启动了
IP、端口、账号与密码都是对的呀
现在是直接连接本机的mysql
不存在root远程访问权限的问题
况且在安装mysql时已经打开了root账号的远程访问权限

继续往上找:
(找跟dapi工程相关的报错信息,而不是找Python源码相关的报错信息)
File "/django/dapi/dapi/urls.py", line 136, in <module>
    url(‘^pyecharts/‘, include(‘interface.urls‘)),
    
File "/django/dapi/interface/urls.py", line 3, in <module>
    from interface import pyecharts
File "/django/dapi/interface/pyecharts.py", line 45, in <module>
    product_count = ProductInfo.objects.all().count()

当我们在激活模型时,
程序已经开始执行了,
但是在url.py文件下未能找到所需的表,
于是便会出现报错。

vim /django/dapi/dapi/urls.py
把第136行注释掉
等迁移完成后再恢复

python manage.py makemigrations
重新激活模型

这次成功了

dapi 基于Django的轻量级测试平台七 怎样部署到生产环境

 

 

python manage.py migrate
迁移

python manage.py createsuperuser
创建超级管理员账号

 

因为静态文件我已经放在工程的static目录下面了

所以不用再python manage.py collectstatic收集静态资源文件了

 

四、配置Nginx:

vim /usr/local/nginx/conf/nginx.conf
修改nginx配置文件

dapi 基于Django的轻量级测试平台七 怎样部署到生产环境

         location / {
                 include uwsgi_params;
                 uwsgi_pass 127.0.0.1:3031;
         }
 
         location /static {
                 alias /django/dapi/static/;
                 index  index.html index.htm;
         }
 
         location /media  {
                 alias /django/dapi/media/;
         }

systemctl restart nginx
重启nginx服务

uwsgi uwsgi.ini
启动uwsgi服务

dapi 基于Django的轻量级测试平台七 怎样部署到生产环境

 

 

 

五、Web页面:


访问http://192.168.1.111/

dapi 基于Django的轻量级测试平台七 怎样部署到生产环境

 

 

 

后台http://192.168.1.111/admin/

dapi 基于Django的轻量级测试平台七 怎样部署到生产环境

 

dapi 基于Django的轻量级测试平台七 怎样部署到生产环境

上一篇:windows server系统打印服务配置


下一篇:各种windows10下的快捷键