在Ubuntu18-server中使用uwsgi+Nginx部署DMS(Django)系统

安装python3环境

1.通过python3命令测试是否安装python3

2-1.如果没安装需要利用apt安装(需要root权限)

apt install python3.6

2-2.如果安装则测试pip3,如果没有则利用apt安装(需要root权限)

apt install python3-pip

利用git pull将代码下载到服务器并测试

1.进入~/DMS目录初始化:

git init 初始化git仓库

2.拉取github代码:

git pull https://github.com/zbill/DMS master

3.设置manage.py 权限:

chmod 755 manage.py

4.通过pip3 install -r requirements.txt命令,安装项目相关模块

5.通过上传,取得settings.py 文件,保存至~/DMS/ver2/目录下

-修改secret key

-修改ALLOWED_HOSTS =  [‘*’],DEBUG = False 

-修改邮箱EMAIL_USE_SSL,EMAIL_HOST,EMAIL_PORT

6.在~/DMS/DMS目录下建立“migrations”目录,在该目录下建立“__init__.py”文件

mkdir migrations

touch migrations/__init__.py

7.runserver测试,进入~/DMS/目录下(含manage.py 文件)

构建数据库

-运行python3 manage.py makemigrations

-运行python3 manage.py migrate

根据服务器ip,运行python3 manage.py runserver 服务器ip:8000

在浏览器中访问“服务器ip:8000”网址,看是否能出现项目首页

如果看到“简洁”的登录页面时,证明测试成功(由于DEBUG=False,无法读取静态文件)

配置uwsgi+nginx

1.安装nginx并测试

sudo apt-get install nginx 安装nginx

运行 /etc/init.d/nginx start 启动nginx service

如果在浏览器访问“服务器ip”可见下图,证明安装成功:

2.在~/DMS/目录下建立“config”文件夹,用于存放Nginx和uwsgi的配置文件

mkdir config

3.在~/DMS/config/目录下建立dms_nginx.conf文件,输入:

 1 upstream django {
 2     # 使用socket
 3     # server unix:///home/zb/DMS/dms.sock;
 4     # 先行测试
 5     server 127.0.0.1:8001;
 6 }
 7 
 8 server {
 9     # 测试时使用8000端口
10     listen      8000;
11     # 服务器ip或域名
12     server_name xx.xx.xxx.xxx;
13     charset     utf-8;
14 
15     # 目前本项目无此目录
16     location /media  {
17         alias /home/zb/DMS/media;
18     }
19 
20     location /static {
21         # 静态文件存放位置
22         alias /home/zb/DMS/static;
23     }
24 
25     location / {
26         # 其他
27         uwsgi_pass  django;
28         # uwsgi_params可从nginx安装目录中获取,一般为'/etc/nginx/uwsgi_params'
29         include     /home/zb/DMS/config/uwsgi_params;
30     }
31 }
dms_nginx.conf

其中,第29行中uwsgi_params文件通过/etc/nginx/uwsgi_params复制,存至~/DMS/config/目录下

4.建立nginx配置链接

ln -s /home/zb/DMS/config/dms_nginx.conf /etc/nginx/sites-enabled/

5.nginx对django项目静态文件的读取需要经过以下步骤:

-再次编辑settings.py文件,将STATICFILE_DIRS变量删除,增加STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

-进入~/DMS目录,运行python3 manage.py collectstatic

重启nginx service: /etc/init.d/nginx restart

访问“服务器ip:8000/static/img/logo-new.png

如可见项目logo图片,则测试nginx读取项目静态文件成功。

6.安装uwsgi

pip3 install uwsgi

7.在~/DMS/目录下运行:

uwsgi --http :8001 --module ver2.wsgi

利用ver2目录下的wsgi.py 文件运行项目

用浏览器访问:“服务器ip:8001”,如果显示登录页面则uwsgi运行成功

8.nginx+uwsgi+django

打开~/DMS/config/dms_nginx.conf 文件

修改upstream内语句:

-注释 server 127.0.0.1:8001;

-取消注释 server unix:///home/zb/DMS/dms.sock;

在~/DMS/目录下运行:

uwsgi --socket dms.sock --module ver2.wsgi

出现上图时,查看nginx错误日志:

cat /var/log/nginx/error.log

如果显示 permission denied则为权限错误

利用uwsgi --socket dms.sock --module ver2.wsgi --chmod-socket=666可解决

9.在~/DMS/config目录下建立dms_uwsgi.ini文件,写入如下内容:

 1 [uwsgi]
 2 # 绝对路径
 3 chdir = /home/zb/DMS
 4 # Django的wsgi文件位置,相对chdir的路径
 5 module = ver2.wsgi
 6 
 7 # 进程相关
 8 master = true
 9 processes = 10
10 # socket绝对路径
11 socket = /home/zb/DMS/dms.sock
12 # 权限相关
13 chmod-socket = 666
14 
15 vacuum = true
16 status = %(chdir)/config/uwsgi.status
17 pidfile = %(chdir)/config/uwsgi.pid
dms_uwsgi.ini

运行uwsgi --ini dms_uwsgi.ini

用浏览器访问 “服务器ip:8000”即可看到正常的登录页面

此时将dms_nginx.conf中listen 8000;改为listen  80;即可使用“服务器ip”直接访问项目页面了。

至此,nginx+uwsgi+django部署完成。

感谢此文章:https://blog.csdn.net/breavo_raw/article/details/82665978,在部署的道路上解答了我很多的疑问

进入系统前的基础配置

1.python3 manage.py createsuperuser,创建django项目管理员账户

2.进入admin页面:

-进入department建立管理员组:如“所级管理员组”

-进入建立管理员账户(需要通过在线加密工具生成密码的sha256加密结果)

3.通过管理员账户进入系统进行系统基础数据管理

4.其他:

-修改系统默认密码(需要通过在线加密工具生成密码的sha256加密结果)

-建立super账户,用于保存发送邮件密码及台账信息超级管理

-邮件模板:领取地点、邮件正文等内容

  

(附)安装virtualenvwrapper,配置.bashrc文件(生产环境不需要配虚拟环境)

1.pip install virtualenvwrapper

2.默认家目录~为:/home/zb

在~目录下建立‘.virtualenvs’目录:mkdir .virtualenvs

3.通过‘find / -name virtualenvwrapper.sh’找到 vitualenvwrapper.sh 文件所在位置:可能为'/home/zb/.local/bin/vitualenvwrapper.sh'

4.进入python环境,import sys,通过sys.executable输出python3解释器所在位置:可能为‘/urs/bin/python3’

5.进入~目录,编辑.bashrc文件,在文件最后添加以下内容:

export WORKON_HOME=/home/zb/.virtualenvs

export VIRTUALENVWRAPPER_PYTHON=/urs/bin/python3

source /home/zb/.local/bin/virtualenvwrapper.sh

6.运行source .bashrc

7.建立虚拟环境dmsenv:

mkvirtualenv dmsenv

虚拟环境会自动建立并运行。

猜你喜欢

转载自www.cnblogs.com/zbill/p/11626482.html