zoukankan      html  css  js  c++  java
  • 腾讯云服务器部署 django项目整个流程

    CentOS7下部署Django项目详细操作步骤

    前记:购买腾讯云服务器,配置自选,当然新用户免费体验半个月,我选择的系统是centos7系统版本,

    接下来我们来看整个配置项目流程。

    部署是基于:centos7+nginx+uwsgi+python3+django 之上做的

    1,详细步骤(下面步骤都是ROOT权限执行):

    一、更新系统软件包

    yum update -y

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

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

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

    wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz

    解压

    tar -zxvf Python-3.6.3.tgz
    cd Python-3.6.3

    编译安装到指定路径

    ./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也一块安装完成,不需要再单独安装
    一样建立软链接

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

    四、查看Python3和pip3安装情况

    timg.jpg

    五、安装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/下,创建指定版本的虚拟环境。

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

    然后进入/data/env/pyweb/bin 


    启动虚拟环境:

    source activate

    timg.jpg

    留意我标记的位置,出现(pyweb),说明是成功进入虚拟环境。

    CentOS7安装MySQL(完整版)

    1 下载并安装MySQL官方的 Yum Repository

    wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

    2, 使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。

     yum -y install mysql57-community-release-el7-10.noarch.rpm

    3,安装MySQL服务器

    yum -y install mysql-community-server

    4, MySQL数据库设置

     首先启动MySQL

    systemctl start  mysqld.service

    查看MySQL运行状态,运行状态如图:

    systemctl status mysqld.service

    此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

    grep "password" /var/log/mysqld.log

    如下命令进入数据库:

     mysql -uroot -p

    输入初始密码(是上面图片最后面的 no;e!5>>alfg),此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

    其中‘new password’替换成你要设置的密码,注意:密码设置必须要大小写字母数字和特殊符号(,/';:等),不然不能配置成功

    开启mysql的远程访问


    执行以下命令开启远程访问限制(注意:下面命令开启的IP是 192.168.0.1,如要开启所有的,用%代替IP):

    grant all privileges on *.* to 'root'@'192.168.0.1' identified by 'password' with grant option;

    然后再输入下面两行命令

    mysql> flush privileges; 
    mysql> exit


    然后在windows远程测试(也可以用可视化第三方navcat等)

    mysql -h 148.70.75.219 -P 3306 -uroot -p

    redis安装

    下载安装包

    wget http://download.redis.io/releases/redis-4.0.2.tar.gz

    解压安装包并安装

    tar xzf redis-4.0.2.tar.gz
    cd redis-4.0.2
    make
    make install

    redis 的很多设置例如:设置密码,远程访问,持久化等,请移驾 点击 跳转。

    最后开始进行项目配置

    1,安装uwsgi

    pip install uwsgi

    2,配置uwsgi,在项目根目录下(manage.py同层目录),新建uwsgi.ini

    # mysite_uwsgi.ini file
    
    [uwsgi]
    
    # Django-related settings
    # 项目根目录的路径
    chdir           = /data/wwwroot/wtp_02                
    # Django's wsgi file
    #wsgi-file       = demo01/wsgi.py
    module = wtp_02.wsgi:application
    # uwsgi服务器的角色
    master          = true
    # 进程7数
    processes=4
    # 线程数
    threads=2
    # 存放进程编号的文件
    pidfile= uwsgi.pid
    # the socket (use the full path to be safe
    socket=:8082
    #http          = 127.0.0.1:8002
    
    #stats = 127.0.0.1:9191
    # ... with appropriate permissions - may be needed
    #chmod-socket    = 664
    # clear environment on exit
    vacuum          = true
    # 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的
    daemonize=uwsgi.log
    
    # 虚拟环境的目录
    pythonpath = /data/env/pyweb

    然后启动uwsgi

    uwsgi -i uwsgi.ini      # 启动
    uwsgi --stop uwsgi.pid # 停止

    我们查下是否启动成功

    通过查询日志,成功运行,证明配置没有问题

    配置项目静态文件

    修改你的dango setting.py

    DEBUG = False
    
    ALLOWED_HOSTS = ['*']

    STATIC_ROOT = os.path.join(BASE_DIR,'static') #静态文件收集 配置路径且将 STATICFILES_DIRS 注释

    然后收集你项目里的所有静态文件,

    python manage.py collectstatic

    3,安装nginx

    切进 该 /usr/local/  目录下,执行下面命令

    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,把原来的内容删除,直接加入以下内容:

    user  root;
    worker_processes  1;
    #
    ##error_log  logs/error.log;
    ##error_log  logs/error.log  notice;
    ##error_log  logs/error.log  info;
    #
    ##pid        logs/nginx.pid;
    #
    #
    events {
        worker_connections  1024;
    }
    #
    #
        http {
            include       mime.types;
            default_type  application/octet-stream;
            sendfile        on;
            keepalive_timeout  65;
            upstream django {
            #django项目的端口号 和uwsgi里面的端口号保存一致
                server 127.0.0.1:8082; # for a web port socket (we'll use this first)
            }
    # configuration of the server
    server {
    # nginx服务的端口号 不用修改
    listen 8001;
    # the domain name it will serve for
    # 这里可以填写你的ip地址或者域名
    server_name 148.70.75.219;
    charset     utf-8;
      gzip on;
      gzip_disable "msie6";
      gzip_proxied any;
      gzip_min_length 1k;
      gzip_comp_level 4;
      gzip_types text/plain text/css application/json application/x-javascript text/javascript text/xml image/jpeg image/png image/gif;
    
    # max upload size
    client_max_body_size 75M;   # adjust to taste
    
    # Django media
    #location /media  {
    #    alias /home/x/work/liebiao/lbpro/media;  # 指向django的media目录
    #}
    
    location /static {
        alias /home/x/work/liebiao/lbpro/static; # 指向django的static目录
    }
    
    # Finally, send all non-media requests to the Django server.
    location / {
        uwsgi_pass  django;
        include     uwsgi_params; # the uwsgi_params file you installed
    }
    }
    }

    配置完成后,启动nginx

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf    #启动nginx
    ./nginx -s reload                                #重启nginx/当然stop是停止     (/usr/local/nginx/sbin下)
    ./nginx                                 #启动nginx

    查询是否启动成功

    lsof -i:8000         查端口占用
    ps -ef|grep nginx    查端口号
    pkill -9 nginx       强制停止运行

    现在打开浏览器即可进行访问。

     

    当然,在实际的开发过程中,经常会碰到服务器需要部署多个项目,我们只需要把 nginx.conf  配置文件稍微修改即可

    #user root;
    #worker_processes  1;
    
    events {
        worker_connections  1024;
        }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
    
        keepalive_timeout  65;
    
        gzip on;
    
        server {
            listen       #监听端口号;
            server_name  #你的服务器ip;
    
         location / {
                # 将nginx所有请求转到uwsgi
                include uwsgi_params;
                # uwsgi的ip与端口
                uwsgi_pass 127.0.0.1:8082;
                }
    
          #location /static {
                # 静态文件目录
                # alias /home/XXXXX(静态文件目录);
                # }   
    
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
               root   html;
              }
         }
    
          server {
            listen       # 监听端口号;
            server_name  # 你的服务器ip;
    
          client_max_body_size 75M;   # adjust to taste      
    
          location / {
                # 将nginx所有请求转到uwsgi
                include uwsgi_params;
                # uwsgi的ip与端口
                uwsgi_pass 127.0.0.1:8100;
                }
    
          location /static {
                 # 静态文件目录
                alias /data/wwwroot/wtp_upload_video/static;
                }
    
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
                 root   html;
                }
    
                }
    
    }
         

    # 标红的是上面要修改的地方,

  • 相关阅读:
    104.Maximum Depth of Binary Tree
    103.Binary Tree Zigzag Level Order Traversal
    102.Binary Tree Level Order Traversal
    101.Symmetric Tree
    100.Same Tree
    99.Recover Binary Search Tree
    98.Validate Binary Search Tree
    97.Interleaving String
    static静态初始化块
    serialVersionUID作用
  • 原文地址:https://www.cnblogs.com/lvye001/p/10631276.html
Copyright © 2011-2022 走看看