zoukankan      html  css  js  c++  java
  • Django+virtualenv+virtualencwrapper+uwsgib部署low_permission

    第一步,在CentOS Linux 环境下使用xshell下载python3

    编译安装python3

    1,解决依赖关系:
    yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
    注意:下载时如果DNS无法解析相应的地址,将会下载失败,可能会导致后续操作不能执行,因为依赖关系没解决。提前配置好DNS也很重要。如果哪个下载失败,可继续操作,单独下载。
    2,下载软件源代码,推荐到opt/底下:
    wget https://www.python.org/ftp/python/3.4.7/Python-3.4.7.tar.xz
    3,解压缩软件源代码,
    xz -d Python-3.4.7.tar.xz
    tar -xf Python-3.4.7.tar
    4,切换进入源代码目录:cd python-3.4.7
    5,./configure释放编译文件:
    ./configure --prefix=/opt/python347/
    6,开始编译,编译安装,make编译,make install 编译安装:
    make && make install
    7,检查你自己制定的安装路径,/opt/python347/
    查看/opt/python347/bin目录,python3的可执行命令都在bin底下了
    
    cd opt     
    ls
    cd python347 
    ls
    cd  ./bin
    ls 
    
    
    8,创建软连接:
    
    cd ~
    ln -s /opt/python347/bin/python3    /usr/bin/python3
    ln -s /opt/python347/bin/pip3  /usr/bin/pip3
    
    
    注意:
          不建议把原来的python软连接删除,因为yum使用的是原生自带的python2。
          如果将python指向python3,yum会用不了。所以还是添加软连接为好。
    
    
    9,配置系统环境变量,配置PATH,加入python3的目录
    
    PATH=/opt/python347/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    或者
    PATH=/opt/python347/bin/:$PATH
    
    写入个人配置文件,永久生效/etc/profile
    vim /etc/profile  :编辑个人配置文件,写入PATH
    PATH=/opt/python347/bin/:$PATH #操作方法:摁“o”进入编辑,粘贴指令,摁‘Esc’,输入:wq! 即可
    执行命令source /etc/profile:重新读取文件使其生效
    
    10,查看python3,pip:
    python3
    pip3
    pip3 list
    
    11,升级pip3  :pip3 install --upgrade pip
    
    12,pip3 list不再提示更新
    13,下载django:pip3 install django==1.11.14

    第二步,Linux环境下安装虚拟环境virtualenv

    1,指定源下载:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
    2,看看下哪儿了:find / -name virtualenv
    3,看看管理包都有啥:pip3 list
    4,创建项目存放地,好管理:
    
    cd /     
    mkdir data     
    cd data   
    mkdir projects

    第三步,Linux环境下下载虚拟环境管理器VirtualenvWrapper管理虚拟环境

    1,下载:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvwrapper
    
    2,找到文件:find / -name virtualenvwrapper.sh
    
    3,vim ~/.bashrc  #打开这个文件,写入以下三行信息(根据自己目录结构修改参数)
    
    export WORKON_HOME=~/Envs   #设置virtualenv的统一管理目录
    VIRTUALENVWRAPPER_PYTHON=/opt/python347/bin/python3   #赋值一个virtualenvwrapper变量
    source /opt/python347/bin/virtualenvwrapper.sh     #执行virtualenvwrapper安装脚本
    
    
    4.读取virtualenvwrapper的环境变量,使得每次开机就加载
    source ~/.bashrc
    
    5.此时 virtualenvwrapper 就会自动创建一些管理命令
    mkvirtualenv my_django15:创建一个虚拟环境,默认会激活当前这个虚拟环境
    workon my_django15:快速进入虚拟环境
    deactivate:手动停止虚拟环境
    rmvirtualenv my_django15:删除虚拟环境,需要先退出虚拟环境
    lsvirtualenv:列举所有的环境。
    cdvirtualenv:导航到当前激活的虚拟环境的目录中,比如说这样您就能够浏览它的 site-packages 。
    cdsitepackages:和上面的类似,但是是直接进入到 site-packages 目录中。
    lssitepackages:显示 site-packages 目录中的内容。
    完整官网介绍:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html
    
    
    #以下只做参考
    
    确保开发环境一致性操作:
    1,本地安装包环境写入到txt文件,在本地cmd执行:pip3 freeze > requirements.txt
    2,将此文件拖拽至Linux服务器,需要有工具
    3,在linux内执行命令下载:pip3 install -r requirements.txt
    
    使用 virtualenvwrapper 管理虚拟环境

    第四步,下载django

    pip3 install django==2.0.14

    第五步,下载mysql

    1、新建文件、配置仓库源
    
    编辑创建mariadb.repo仓库文件
    vi /etc/yum.repos.d/MariaDB.repo
    
    
    2、添加repo仓库配置
    
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.1/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    
    
    3、下载
    yum install MariaDB-server MariaDB-client -y
    
    4、启动
    systemctl start mariadb(通过yum下载的,可以使用systemctl管理)
    
    5、初始化
    mysql_secure_installation

    6、登录
    mysql -uroot -p
    密码
    
    7、修改密码
    set password = PASSWORD('redhat123');
    
    8、创建普通用户,远程登录
    
    创建用户
      create user '用户名'@'%' identified by '密码';
    给新用户授权:
      grant all privileges on *.* to '用户名'@'%' identified by '密码';
    刷新权限:
      flush privileges;
    使用cdm终端登录验证:
      mysql -u用户名 -p -h 10.0.0.10      输入密码
    
    
    9、新用户没授权,会有权限限制
    
    MariaDB [(none)]>证明没有使用数据库
    
    use mysql;      Access denied for user 'xxx'@'%' to database 'mysql'
    新建的普通用户没有权限,需要切换到root用户。
    
    root用户下:
        use mysql;         
        Database change        
        MariaDB [mysql]>证明已使用mysql
    查看创建的用户:
        select host,user,password from user where user='hui';
    
    
    10、权限
    对用户开通所有的权限:grant all privileges on *.* to username@'%';
    查看用户的权限:show grants for username@'%';
    移除权限(使用root用户):revoke all privileges on *.* from username@'%';
    
    11、设置编码
    vim /etc/my.cnf写入配置:
    
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    log-error=/var/log/mysqld.log
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    
    修改完配置文件,需要重启mysql,使得生效
    systemctl stop mariadb 
    systemctl start mariadb 
    查看编码相关信息:s  (进去后执行)
    
    
    12、关闭防火墙
    
    mysql远程登录授权配置:
        注意!关闭防火墙。、。。。。这样就不会再出莫名其妙的bug了。。。
        iptables -F  #清空防火墙规则
        #关闭防火墙 
        systemctl stop firewalld
        #永久关闭防火墙开机自启
        systemctl disable firewalld
    
    
    13、mysql的备份和恢复
    
    创建数据库:create database s12;
    备份:mysqldump -u root -p --all-databases > /tmp/db.dump
    删除:drop database s12;
    恢复(两种方式):
        1.登录数据库后:source /tmp/db.dump    
        2.在登录时候,进行数据写入:mysql -uroot -p < /tmp/db.dump
    
    
    14、查看端口号是否被占用
    lsof -i:3306
    netstat -tunlp|grep 3306

    第六步,下载配置uwsgi

    一、确保django项目可以正常运行
    
    1.创建虚拟环境,下载django1.11.15,创django项目
    
    1.我把所有虚拟环境的项目都创在了/projects下,所以
    cd /projects         
    mkvirtualenv low_permissioin_venv
    
    2.好习惯,检查环境是否独立:
    which pip             
    pip3 list
    
    3.下载django:pip3 install django==1.11.15
    
    4.创建django项目(或者使用拖拽工具yum install lrzsz,将项目拖拽进去,然后进行解压unzip low_permission.zip)
    django-admin startproject django15
    cd django15
    python manage.py runserver 0.0.0.0:8000
    
    5.测试访问,浏览器输入: 10.0.0.10:8000
    
    
    
    
    二、确保uwsgi可以正常使用
    
    
    2.安装uwsgi
    
    1.下载:pip3 install -i https://pypi.douban.com/simple uwsgi
    
    2.通过uwsgi启动一个python web服务
    准备一个test_uwsgi.py文件,写入代码
    
    
    
    def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return [b"Hello World,im uwsgi....."] # python3
    
    
    
    3,通过命令启动这个文件
    
    
    uwsgi --http :8000 --wsgi-file test_uwsgi.py
    
    
    4.可以测试访问
    
    
    http://10.0.0.10:8000/
    三、uwsgi结合django开启项目
    
    
    5.我的项目目录
    
    
    (django15) [root@localhost /projects/django15/django15 03:04:40]#ls
    __init__.py  __pycache__  settings.py  test_uwsgi.py  urls.py  wsgi.py  
    
    
    
    6.通过uwsgi,启动django项目
    
    1.准备好django项目
    2.编写一个hello测试视图
    from django.shortcuts import HttpResponse
    def hello(request):
        return HttpResponse('hello , im uwsgi.....')
    # 加上url视图
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^hello/',hello),
    ]
    
    
    3.通过uwsgi启动你的django项目
    3.1.进入你的django项目,这是第一层
    cd /projects/django15
    3.2.通过命令启动
    uwsgi --http :9000 --module django15.wsgi↓
    (django15) [root@localhost /projects/django15 04:11:47]#uwsgi --http :9000 --module django15.wsgi
    3.3.测试访问你的django应用 9000端口
    10.0.0.10:9000/hello/
    http://10.0.0.10:9000/admin/(前端样式丢失)
    3.4.注意,此时你的项目丢失静态文件,因为uwsgi不解析静态文件配置
    
    
    
    
    
    7.uwsgi热加载django程序
    启动命令添加一条参数
    uwsgi --http :9000 --module django15.wsgi --py-autoreload=1
  • 相关阅读:
    git相关
    String,static,final
    tomcat和servlet的基本了解
    xml的相关知识
    js基础
    HTML
    Java之JDBC连接池
    Java之JDBC
    Java的内存模型
    Java的内存结构
  • 原文地址:https://www.cnblogs.com/djfboai/p/10918272.html
Copyright © 2011-2022 走看看