一,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. LVS之DR模式部署

    一.LVS-DR数据包流向分析 为方便进行原理分析,将Client与群集机器放在同一网络中,数据包流经的路线为1-2-3-41.Client 向目标 VIP 发出请求,Director(负载均衡器)接 ...

  2. Apple Watch Series 6 编织表带如何清洗

    Apple Watch Series 6 编织表带如何清洗 如何清洁 Apple Watch https://support.apple.com/zh-cn/HT204522 refs xgqfrms ...

  3. leetcode bug & 9. Palindrome Number

    leetcode bug & 9. Palindrome Number bug shit bug "use strict"; /** * * @author xgqfrms ...

  4. yarn & macOS & upgrade

    yarn & macOS https://yarnpkg.com/zh-Hans/docs/install#mac-stable $ brew install yarn $ brew upgr ...

  5. UI 素材网站

    UI 素材网站 UI 设计师网站 国外: dribble.behance.Pinteres 国内: 优设.站酷.UI中国.花瓣 https://design.google/ https://dribb ...

  6. taro swiper & scroll tabs

    taro swiper & scroll tabs https://taro-docs.jd.com/taro/docs/components/viewContainer/swiper.htm ...

  7. taro best practice

    taro best practice 最佳实践 https://taro-docs.jd.com/taro/docs/best-practice.html#关于-jsx-支持程度补充说明 https: ...

  8. 「NGK每日快讯」11.24日NGK公链第22期官方快讯!

  9. 观点纠正,yarn和npm对比,今天yarn仍然比npm快吗

    yarn和npm的区别和对比,网上很多了,不多说了. 只纠正一个观点:yarn仍然比npm快吗?不. 2016年,yarn刚刚发布,速度确实比npm快,于是网络上出现了好多推荐yarn的文章. 于是很 ...

  10. django学习-5.获取url参数和name的作用

    1.前言 假如我们要打开这两个博客园地址:[https://www.cnblogs.com/xiamen-momo/archive/2020/11.html].[https://www.cnblogs ...