部署基本要求 1.通过yum安装python3.5以上 使python程序不和系统本身python冲突(宝塔后台使用了默认 python)
2.安装虚拟环境
3.通过git ssh公钥下载部署代码
4.书写supervisord脚本,使用脚本启动项目
5.安装nginx
app服务器部署 1.安装python3
mkdir /opt/mypython3wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz tar -zxvf Python-3.6.5.tgz cd Python-3.6.5./configure --prefix=/opt/mypython3 make && make install
2.安装虚拟环境
cd /opt/mypython3/bin ./pip3 install virtualenvwrapper
配置虚拟环境
mkdir ~/Envs cd ~/Envs virtualenv movie_online -p /opt/mypython3/bin/python3.6
激活虚拟环境
source ~/Envs/movie_online/bin/activate
3.部署代码
生成ssh公钥
ssh-keygen cat ~/.ssh/id_rsa.pub
把公钥放入gitee私人设置
建目录 托代码
mkdir /project cd /project git clone git@gitee.com:pengmao/MoDuXiXiaAPP.git movie_online mkdir /project/movie_online/backend/log mkdir /project/movie_online/backend/log/gunicorn
4.安装supervisor并使用
给虚拟环境安装pip 包
pip install -r /project/movie_online/backend/requirements.txt
使用自带的python2.6安装supervisord
deactivate pip install supervisor mkdir /project/supervisor cd /project/supervisor echo_supervisord_conf > supervisor.conf mkdir /project/supervisor/movie_online_log
supervisord配置文件
[program:movie_online] command=/root/Envs/movie_online/bin/gunicorn -c gunicorn_conf.py movie_1.wsgi directory=/project/movie_online/backend startsecs=0 stopwaitsecs=0 autostart=true autorestart=true stdout_logfile=/project/supervisor/movie_online_log/gunicorn.log stderr_logfile=/project/supervisor/movie_online_log/gunicorn.err
supervisord启动命令
supervisord -c /project/supervisor/supervisor.conf supervisorctl -c /project/supervisor/supervisor.conf status 察看supervisor的状态 supervisorctl -c /project/supervisor/supervisor.conf reload 重新载入 配置文件 supervisorctl -c supervisor.conf stop 停止
nginx 新建日志文件夹
mkdir /project/logs mkdir /project/logs/movie_online
nginx配置参考
server { charset utf-8; listen 80; #server_name api.coolcity.tangrenapp.com; client_max_body_size 5; location /static { client_max_body_size 50m; alias /project/movie_online/backend/static; allow all; } location / { client_max_body_size 50m; proxy_set_header Host $host; proxy_pass http://0.0.0.0:8005; } #error_log /root/project/logs/modou/error.log; error_log /project/logs/movie_online/error.log; access_log /project/logs/movie_online/access.log; }
最后收集静态文件
cd /project/movie_online/backend source ~/Envs/movie_online/bin/activate python3.6 manage.py collectstatic
资源服务器 搭建nginx dav服务器
wget http://nginx.org/download/nginx-1.12.2.tar.gz tar -zxvf nginx-1.12.2.tar.gz cd nginx-1.12.2 mkdir /opt/mynginx ./configure --prefix=/opt/mynginx --with-http_dav_module make && make install
dav配置
10.19.96.0/24; 开放内网网段
server{ listen 30081; location / { #root /var/www/media; root /www/wwwroot/file.coolcity.tangrenapp.com; # client_body_temp_path /data/client_temp; dav_methods PUT DELETE MKCOL COPY MOVE; create_full_put_path on; dav_access group:rw all:r; allow 10.19.96.0/24; deny all; } error_log logs/pic_error.log; access_log logs/pic_access.log; }
user = 我 or 其他人
发帖人(我) 删除权限 对 我的帖子 看帖子的人(其他人) 没有删除权限 对 我的帖子 小吧主(其他人) 有删除权限 对 我的帖子
权限管理系统 –》 第三方
实现的一种 -> guradian
权限管理系统 -> RBAC-> guradian
赋予权限
查看权限
删除权限
短评:
1.用户发帖的时候 使用 guradian
1.赋予用户删帖权限
2.赋予管理员删除权限
3.赋予用户修改权限
在查看帖子的时候: 去查看一下你有没有删除的权限
请求删除的时候: 去查看一下你有没有删除的权限
代码: from guardian.shortcuts import assign_perm from guardian.shortcuts import check_perm from guardian.shortcuts import remove_perm