Django+virtualenv+virtualencwrapper+uwsgib部署low_permission 第一步,在CentOS Linux 环境下使用xshell下载python3 第二步,Linux环境下安装虚拟环境virtualenv 第三步,Linux环境下下载虚拟环境管理器VirtualenvWrapper管理虚拟环境 第四步,下载django 第五步,下载mysql 第六步,下载配置uwsgi

Django+virtualenv+virtualencwrapper+uwsgib部署low_permission
第一步,在CentOS Linux 环境下使用xshell下载python3
第二步,Linux环境下安装虚拟环境virtualenv
第三步,Linux环境下下载虚拟环境管理器VirtualenvWrapper管理虚拟环境
第四步,下载django
第五步,下载mysql
第六步,下载配置uwsgi

编译安装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

Django+virtualenv+virtualencwrapper+uwsgib部署low_permission
第一步,在CentOS Linux 环境下使用xshell下载python3
第二步,Linux环境下安装虚拟环境virtualenv
第三步,Linux环境下下载虚拟环境管理器VirtualenvWrapper管理虚拟环境
第四步,下载django
第五步,下载mysql
第六步,下载配置uwsgi

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