zoukankan      html  css  js  c++  java
  • Linux 搭建Django环境 + nginx + virtualenv虚拟环境

    Linux 搭建Django环境 + nginx + virtualenv虚拟环境

    整理来源:https://www.django.cn/article/show-4.html

    第一步:安装宝塔 (用于可视化,方便管理,后期装数据库方便)

    yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
    

    第二步:使用 宝塔 安装数据库

    略。

    第三步:

    一、更新系统软件包

    yum update -y  
    

    二、安装软件管理包和可能使用的依赖

    yum -y groupinstall "Development tools"
    yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc
    

    三、下载Pyhton3到/usr/local 目录

    cd /usr/local
    
    wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
    

    解压

    tar -zxvf Python-3.6.6.tgz
    

    进入 Python-3.6.6路径

    cd Python-3.6.6
    

    编译安装到指定路径

    ./configure --prefix=/usr/local/python3
    

    注意:/usr/local/python3 路径可以自己指定,自己记着就行,下边要用到。

    安装python3

    make
    make install
    

    安装完成之后 建立软链接 添加变量 方便在终端中直接使用python3

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

    Python3安装完成之后pip3也一块安装完成,不需要再单独安装
    同样给pip3建立软链接

    ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3
    

    四、查看Python3和pip3安装情况

    python3
    pip3 -v
    

    五、安装virtualenv ,建议大家都安装一个virtualenv,方便不同版本项目管理。

    pip3 install virtualenv
    

    建立软链接

    ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
    

    安装成功在根目录下建立两个文件夹,主要用于存放env和网站文件的。(个人习惯,其它人可根据自己的实际情况处理)

    mkdir -p /data/env
    mkdir -p /data/wwwroot
    

    六、切换到/data/env/下,创建指定版本的虚拟环境。

    /data/env/
    virtualenv --python=/usr/bin/python3 pyweb
    

    然后进入/data/env/pyweb/bin
    启动虚拟环境:

    cd /data/env/pyweb/bin 
    source activate
    
    右下角出现(pyweb),说明是成功进入虚拟环境。
    

    七、虚拟环境里用pip3安django和uwsgi

    pip3 install django==1.11.11 (指定安装和你项目相同的版本)
    pip3 install uwsgi
    

    留意:uwsgi要安装两次,先在系统里安装一次,然后进入对应的虚拟环境安装一次。

    给uwsgi建立软链接,方便使用

    ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
    

    八、本地项目搬迁到服务器

    1、修改Django配置settings文件中ALLOWED_HOSTS,['*'],可以让任何IP访问

    1、在项目目录下用下面的命令把当前的环境依赖包导出到requirements.txt文件

    pip freeze > requirements.txt
    

    2、把项目源码压缩打包。上传到服务器对应的目录里,解压。

    3、进入虚拟环境

    cd /data/env/pyweb/bin
    source activate
    

    4、进入项目路径安装requirements.txt里的依赖包。

    pip3 install -r requirements.txt
    

    5、通过python3 manage.py runserver 运行一下项目,如果能正常启动则进行下一步,不能正常运行往上检查。

    九、Django正常运行之后我们就开始配置一下uwsgi。

    我们网站项目路径是 /data/wwwroot/mysite/,在项目根目录下创建
    mysite.xml文件,输入如下内容:

    <uwsgi>    
       <socket>127.0.0.1:8997</socket> <!-- 内部端口,自定义 --> 
       <chdir>/data/wwwroot/mysite/</chdir> <!-- 项目路径 -->            
       <module>mysite.wsgi</module>  <!-- mysite为wsgi.py所在目录名--> 
       <processes>4</processes> <!-- 进程数 -->     
       <daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
    </uwsgi>
    

    保存
    注意里的mysite,为wsgi.py所在的目录名。

    十、安装nginx和配置nginx.conf文件

    进入home目录,执行下面命令

    cd /home/
    
    wget http://nginx.org/download/nginx-1.13.7.tar.gz
    

    下载完成后,执行解压命令:

    tar -zxvf nginx-1.13.7.tar.gz
    

    进入解压后的nginx-1.13.7文件夹,依次执行以下命令:

    ./configure
    make
    make install
    

    nginx一般默认安装好的路径为/usr/local/nginx
    在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。

    cp nginx.conf nginx.conf.bak
    

    然后打开nginx.conf,把原来的内容删除,直接加入以下内容:

    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        server {
            listen 80;
            server_name  www.django.cn; #改为自己的域名,没域名修改为127.0.0.1:80
            charset utf-8;
            location / {
               include uwsgi_params;
               uwsgi_pass 127.0.0.1:8997;  #端口要和uwsgi里配置的一样
               uwsgi_param UWSGI_SCRIPT mysite.wsgi;  #wsgi.py所在的目录名+.wsgi
               uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite/; #项目路径
               
            }
            location /static/ {
            alias /data/wwwroot/mysite/static/; #静态资源路径
            }
        }
    }
    

    要留意备注的地方,要和UWSGI配置文件mysite.xml,还有项目路径对应上。
    进入/usr/local/nginx/sbin/目录
    执行./nginx -t命令先检查配置文件是否有错,没有错就执行以下命令:

    ./nginx
    

    终端没有任何提示就证明nginx启动成功。可以使用你的服务器地址查看,成功之后就会看到一个nginx欢迎页面。

    ​ 之后,在settings.py里设置:

    ​ 1、关闭DEBUG模式。

    ​ DEBUG = False

    ​ 2、ALLOWED_HOSTS设置为* 表示任何IP都可以访问网站。

    ​ ALLOWED_HOSTS = ['*']

    十五、访问项目的页面。

    每次项目启动方式

    cd /data/env/pyweb/bin 进入虚拟环境
    source activate 启动虚拟环境
    
    启动nginx
    cd /usr/local/nginx/sbin/   
    ./nginx
    
    启动 ( mysite 为你自己的项目名 )
    cd /data/wwwroot/mysite
    uwsgi -x  mysite.xml 
    
    启动项目(建议使用下面的后台执行,80为项目端口)
    python3 manage.py runserver 0.0.0.0:80
    
    在后台执行 (执行完以后需要用’exit‘正常退出Linux系统):
    nohup python manage.py runserver 0.0.0.0:80 2>log &
    ps -aux  查询所有后台程序
    kill DIP  # 结束后台
    

    成功访问!
    里面最值得留意的就是项目的路径不要弄错,还有,项目的所有操作都要在虚拟环境下进行。

    环境部署部份,懒的话,直接复制我的代码直接部署就行。

  • 相关阅读:
    2021,6,10 xjzx 模拟考试
    平衡树(二)——Treap
    AtCoder Beginner Contest 204 A-E简要题解
    POJ 2311 Cutting Game 题解
    Codeforces 990G GCD Counting 题解
    NOI2021 SDPTT D2T1 我已经完全理解了 DFS 序线段树 题解
    第三届山东省青少年创意编程与智能设计大赛总结
    Luogu P6042 「ACOI2020」学园祭 题解
    联合省选2021 游记
    Codeforces 1498E Two Houses 题解 —— 如何用结论吊打标算
  • 原文地址:https://www.cnblogs.com/tyler-bog/p/10994839.html
Copyright © 2011-2022 走看看