安装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 }
其中,第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
运行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
虚拟环境会自动建立并运行。