一,centos6.9部署django

​ 部署套件:centos6.9+nginx+mysql+uwsgi+python3+django

​ 首先还是要明白这几个部分之间的关系(自己也是初学者,希望大家多指正):

​ 项目需求租了三年腾讯云的服务器,准备用这台服务器练练手,加做点自己想做的事情;并且申请了一个域名:数据处理研究。那么,让我们开始吧。

  1. 远程登陆

    使用大名鼎鼎的SecureCRT,这是一个自己拥有一个属于自己的世界的感觉,虽然这个世界现在还一穷二白。

  2. 安装lnmp

    • 下载 下载版lnmp(这里下载的是1.4),修改其中的lnmp.conf,变更数据库目录和网站目录。

      Download_Mirror='https://soft.vpser.net'
      
      Nginx_Modules_Options=''
      PHP_Modules_Options='' ##MySQL/MariaDB database directory##
      MySQL_Data_Dir='/home/wwwdata/mysql/var'
      MariaDB_Data_Dir='/home/wwwdata/mariadb/var'
      ##Default website home directory##
      Default_Website_Dir='/home/wwwroot/default' Enable_Nginx_Openssl='y'
    • 使用rz将压缩包上传到服务器,存入/tmp,进入/lnmp1.4,安装

      # 进入tmp目录
      cd /tmp # 上传
      rz # 解压
      tar xf lnmp1.4.tar.gz #安装
      cd lnmp1.4
      ./install.sh

      安装过程中mysql选择3,即安装MySQL 5.6.36,需要有1G以上的内存。设置MySQL密码存储引擎安装:Y

      PHP选择5,即PHP 5.6.31。

      内存收集器安装,直接回车

      安装时间还是挺长的,耐心等待(我这花了28min)。

  3. 安装python3

    • 进入/tmp/,执行以下命令

      cd /tmp/
      wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz

      如果实在是慢,可以采用迂回的方式(链接按着ctrl打开,是不是很神奇?)

    • 下载完成后,解压

      tar -xzvf Python-3.6.4.tgz
    • 进入解压后的Python-3.6.4文件夹,依次执行以下命令

      cd Python-3.6.4
      ./configure --prefix=/usr/local/python3
      #将python3安装到/usr/local/python3/路径下
      make && make install
      ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
      ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
      #这两个ln命令建立链接,方便在终端直接使用python3和pip3命令
    • 如果需要更新pip,使用命令

      pip3 install --upgrade pip
  4. 安装virtualenv并使用虚拟环境

    • 执行命令:

      pip3 install virtualenv
      python3 -m venv /home/virtualenv/django
      # 创建名字为django的虚拟环境,之后进入虚拟环境,执行命令:
      cd /home/virtualenv/django/bin
      source activate
  5. 安装第三方库

    • 在django虚拟环境下,安装第三方库:

      • 首先进入虚拟环境下的tmp,之后创建 requirements.txt

        cd /tmp
        vi requirements.txt
      • 将下列第三方库的名称写入文件中

        diff-match-patch==20121119
        Django==2.0.1
        django-crispy-forms==1.7.0
        django-formtools==2.1
        django-import-export==0.6.1
        django-pure-pagination==0.3.0
        django-ranged-response==0.2.0
        django-reversion==2.0.12
        django-simple-captcha==0.5.6
        djangorestframework==3.8.2
        et-xmlfile==1.0.1
        future==0.16.0
        httplib2==0.9.2
        jdcal==1.3
        odfpy==1.3.6
        openpyxl==2.4.9
        Pillow==5.0.0
        pytz==2018.4
        PyYAML==3.12
        six==1.11.0
        tablib==0.12.1
        unicodecsv==0.14.1
        uWSGI==2.0.17
        xlrd==1.1.0
        xlwt==1.3.0

        vi使用(i进入INSERT模式,右键粘贴,ESC进入命令模式,进入末行模式,输入wq+回车保存退出)

      • pip安装

        pip install -r requirements.txt
      • 之后安装 mysqlclient==1.3.12

        pip install mysqlclient==1.3.12

        如果报错 /bin/sh: mysql_config: command not found,执行以下命令手动安装:

        cd /tmp
        
        wget http://mirrors.163.com/pypi/packages/6f/86/bad31f1c1bb0cc99e88ca2adb7cb5c71f7a6540c1bb001480513de76a931/mysqlclient-1.3.12.tar.gz#sha256=2d9ec33de39f4d9c64ad7322ede0521d85829ce36a76f9dd3d6ab76a9c8648e5
        
        tar -xzvf mysqlclient-1.3.12.tar.gz
        cd mysqlclient-1.3.12
        vi setup_posix.py #修改setup_posix.py下,mysql_config.path = "mysql_config" 改成 mysql_config.path = #"/usr/local/mysql/bin/mysql_config",保存并退出:wq! python setup.py install
  6. 上传项目

    • 压缩test1项目,之后使用rz上传到/home/wwwroot/

      cd /home/wwwroot/
      rz
      tar -xzvf test1.tar.gz
    • 下载uWSGI,并设置软链接。uWSGI可提供动态连接服务,往往与nginx配合使用(nginx处理静态文件),组成服务器软件。

      浏览器——》服务器——》服务器软件(uWSGI+nginx)——》django

      安装过lnmp后,nginx已经装好了,详情可见 LNMP安装了哪些软件?安装目录在哪?

      pip3 install uwsgi
      ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
      • 测试样例

        • 创建test.py,进行如下编辑

          def application(env, start_response):
          start_response('200 OK', [('Content-Type','text/html')])
          return [b"Hello World"]

          之后运行指令:

          uwsgi --http :8001 --wsgi-file test.py
          # 相应的服务器的安全组要开放8001的入规则

          之后进入 http://analysis1.space:8001/ 可以看到

        • 释放某一个端口

          netstat -lnp|grep 8001	#找到某一个端口的应用程序
          tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN ?????/java kill -9 ????? #结束对应的应用程序
    • 创建并启用test1_uwsgi.ini

      vi test1_uwsgi.ini
      
      # 在test1_uwsgi.ini中进行如下配置
      [uwsgi]
      #项目目录
      chdir=/home/wwwroot/test1
      # 启动uwsgi的用户名和用户组
      uid=www
      gid=www
      # 指定项目的application
      module=test1.wsgi
      # 指定sock的文件路径
      socket= :8001
      # 启用主进程
      master=true
      # 进程个数
      workers=2
      vacuum=true
      #环境
      virtualenv = /home/virtualenv/django
      # 序列化接受的内容,如果可能的话
      thunder-lock=true
      # 启用线程
      enable-threads=true
      # 设置自中断时间
      harakiri=30
      # 设置缓冲
      post-buffering=1028
      # 设置日志目录
      daemonize=/home/wwwroot/test1/uwsgi.log # 启动UWSGI命令:
      uwsgi --ini test1_uwsgi.ini
  7. 连接uwsgi与nginx

    • 创建test1.conf

      vim /usr/local/nginx/conf/vhost/test1.conf
      
      # 输入以下内容
      upstream django {
        server 127.0.0.1:8001;
      }
      server {
        listen 80;
        server_name analysis1.space;
        charset utf-8;
        client_max_body_size 1G;
        location /media {
          alias /home/wwwroot/test1/media;
        }
        location /static {
          alias /home/wwwroot/test1/static;
        }
         location / {
          root /home/wwwroot/test1;
          uwsgi_pass django;
          include uwsgi_params;
        }
      }
    • 分配用户组、文件读取权限、重启nginx

      chown -R www:www /usr/local/nginx/conf/vhost/test1.conf
      chmod -R 755 /usr/local/nginx/conf/vhost/test1.conf
      /etc/init.d/nginx restart

参考

  1. bilibili万岁1-感谢 蜡笔凡鑫
  2. bilibili万岁2-感谢 再敲一行代码
  3. 与1相对应的博客
  4. lnmp一键安装包
  5. 重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  6. python官网
  7. 在SecureCRT上怎么下载/上传文件
  8. LNMP安装了哪些软件?安装目录在哪?

【Linux学习笔记1】-centos6.9部署django的更多相关文章

  1. Linux学习笔记之CentOS6.9 防火墙的关闭以及开启

    有的时候,我们需要对系统的防火墙进行操作,今天小编就给大家讲解一下如何开启以及关闭CentOS6.9系统下的防火墙. 输入:cat /etc/issue   查看版本 (一)通过service命令 s ...

  2. Linux~学习笔记目录索引

    回到占占推荐博客索引 本篇文章是对自己学习Linux及在它的环境下部署工具的一个总结,以方便自己查阅,也给他人一个帮助,本文章同时会不断的更新,欢迎大家订阅! 本目录包括的内容会包括linux基础命令 ...

  3. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  4. linux学习笔记2-linux的常用命令

    第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...

  5. Linux学习笔记(一)2015.4.13

    研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...

  6. 20160127 linux 学习笔记

    Linux学习笔记第一天 Linux基本介绍 Linux的起源和发展: 简单说linux是一种操作系统,可以安装在包括服务器.个人电脑,乃至PDA.手机.打印机等各类设备中. 起源: Linux起源于 ...

  7. linux —— 学习笔记(汇总)

    笔记目录:一.系统知识 和 基本概念                    二.常用操作                   三.系统管理(内存.设备.服务等管理)                   ...

  8. Linux学习笔记-林耐斯Notes-Linux就该这么学

    Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...

  9. deepin linux学习笔记(四)进不去图形界面怎么办?

    目录 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 更换成lxde桌面 进不去图形界面怎么办? 总结 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 生命不息 ...

随机推荐

  1. npm config set registry

    npm config set registry $ npm config set registry $ npm config set registry https://registry.your-re ...

  2. soft tab

    soft tab hard-tabs 是硬件 tab,就是按一个 tab 键; soft-tabs 是软件 tab,通过按 4个 space 键实现; refs Tabs vs. Spaces, FR ...

  3. iPhone 12 导入通讯录排序 Bug

    iPhone 12 导入通讯录排序 Bug iOS iOS 通讯录排序问题 Huawei OK solution iOS 切换中英文,修复排序通讯录 bug Awesome iOS Contacts ...

  4. js Array All In One

    js Array All In One array 方法,改变原数组(长度),不改变原数组(长度) https://developer.mozilla.org/en-US/docs/Web/JavaS ...

  5. how to recursively all files in a folder with sudo permissions in macOS

    how to recursively all files in a folder with sudo permissions in macOS write bug OK sudo chmod 777 ...

  6. Axios all in one

    Axios all in one https://github.com/axios/axios#example GET const axios = require('axios'); // Make ...

  7. vue 使用stylus

    λ yarn add stylus stylus-loader --dev <style scoped lang="stylus"> div color #ff4488 ...

  8. 使用 Tye 辅助开发 k8s 应用竟如此简单(三)

    续上篇,这篇我们来进一步探索 Tye 更多的使用方法.本篇我们来了解一下如何在 Tye 中如何对数据库进行链接. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次 ...

  9. [转]ORB特征提取-----FAST角点检测

    转载地址:https://blog.csdn.net/maweifei/article/details/62887831 (一)ORB特征点提取算法的简介 Oriented FAST and Rota ...

  10. SpringCloud(一):微服务架构概述

    1-1.  系统进化理论概述 在系统架构与设计的实践中,经历了两个阶段,一个阶段是早些年常见的集中式系统,一个阶段是近年来流行的分布式系统: 集中式系统: 集中式系统也叫单体应用,就是把所有的程序.功 ...