• 阿里云部署Django主要注意事项


    (1)virtualenv 报错 os 没有 PathLike属性

    阿里云ubuntu16.0服务器默认python版本分别是2.7.12,3.5.2,而PathLike是在python 3.6时才被加入的属性,因此需要再装个python3.6,并把3.6版本的作为默认版本。

    • 直接sudo apt-get install python3.6肯定是会出错的
    image-20201220191549387

    需要执行:

    apt-get install python-software-properties  
    apt-get install software-properties-common
    
    • 然后尝试
    add-apt-repository ppa:jonathonf/python-3.6
    
    image-20201220191820767

    发现依然报错,

    执行

    sudo add-apt-repository ppa:deadsnakes/ppa
    sudo apt-get update
    sudo apt-get install python3.6
    

    (参考链接:https://blog.csdn.net/qq_35975447/article/details/106795935)

    image-20201220192258420

    安装OK

    • 修改python 命令默认为python3.6

    先查看python命令指向

    ls -l /usr/bin | grep python 
    
    image-20201220192550974

    指向python2.7

    然后删除原有python软链接

    rm /usr/bin/python 
    

    然后建立python到python3.6新的软链接

    ln -s /usr/bin/python3.6 /usr/bin/python 
    

    image-20201220192755490

    OK

    • 安装python3的pip
    apt-get install python3-pip
    

    建立pip到pip3的软连接

    ln -s /usr/bin/pip3 /usr/bin/pip 
    

    (2)安装virtualenv需要注意

    为确保是python3.6的pip工作,用

    python3.6 -m pip install virtualenv
    

    进入虚拟环境:

    source env/bin/activate
    

    (3)Nginx注意事项

    • 安装
    sudo apt-get update
    sudo apt-get upgrade
    
    • 启动
    sudo service nginx start
    
    • 修改配置

    进入etc ginxsites-available

    创建onefile(任意名称)

    sudo vi onefile
    

    onefile中写入:

    server {
      charset utf-8;
      listen 80;
      server_name xxxxxx;  # 改成你的 IP
    
      location /static {
        alias /home/sites/file/project_name/collected_static;#file是服务器中建立的文件名
      }
    
      location /media {
        alias /home/sites/file/project_name/media; #file是服务器中建立的文件名,project_name是项目名称
      }
    
      location / {
        proxy_set_header Host $host;
        proxy_pass http://unix:/tmp/xxxx.socket;  # 改成你的 IP
      }
    }
    
    • 将刚写的配置文件链接到/etc/nginx/sites-enabled非常重要
    sudo ln -s /etc/nginx/sites-available/onefile /etc/nginx/sites-enabled
    
    • 全局暂停
    sudo nginx -s stop
    

    (4)Gunicorn

    • 安装
    python3.6 -m install gunicorn
    
    • 重启Nginx
    sudo service nginx reload
    
    • 启动Gunicorn
    gunicorn --bind unix:/tmp/xxxx.socket project_name.wsgi:application
    

    如果有域名,就把套接字中的IP地址换成域名;wsgi前是项目名。sudo service nginx reload只重载配置文件,sudo service nginx restart重启整个服务。

    (5)后期运维

    git pull origin master
    python3 manage.py collectstatic
    python3 manage.py migrate
    # 重启 gunicorn
    pkill gunicorn
    gunicorn --bind unix:/tmp/xxxx.socket project_name.wsgi:application
    

    注意重启gunicorn命令应在虚拟环境下的项目文件中进行。
    如果更改了Nginx的配置文件,还需要重启Nginx服务。

    ##### 愿你一寸一寸地攻城略地,一点一点地焕然一新 #####
  • 相关阅读:
    判断浏览器是pc端和移动
    高德谷歌地图切换成英文地图
    小程序修改默认的单选框复选框样式
    推荐系统| ① Movies概述
    推荐系统| ② 离线推荐&基于隐语义模型的协同过滤推荐
    数据结构与算法| 复杂度分析
    Flink| 运行架构
    机器学习| 高数-基础
    Flink| 概述| 配置安装
    推荐系统| 概述
  • 原文地址:https://www.cnblogs.com/johnyang/p/14165854.html
Copyright © 2020-2023  润新知