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  # 结束后台
    

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

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

  • 相关阅读:
    jQuery--.wrap()方法
    ECharts学习(4)--仪表盘
    ECharts学习(3)--toolbox(工具栏)
    jQuery之核心API
    STM32片上Flash内存映射、页面大小、寄存器映射
    typedef struct bit0 : 1
    ***WARNING L15: MULTIPLE CALL TO SEGMENT
    C/C++ 打印文件名、行号、函数名的方法
    ISP与IAP的区别
    sprintf函数 %6.2f
  • 原文地址:https://www.cnblogs.com/tyler-bog/p/10994839.html
Copyright © 2011-2022 走看看