day03

python3的linux环境编译安装

1.linux下安装软件的方式

-首选yum工具,方便,自行解决软件之间的依赖关系,自动下载且安装

1.配置yum源(就是一个软件仓库,里面放了一堆rpm软件包)
  可以选择阿里云源,清华yum源
  配置第一个仓库,里面有大量系统常用软件
  wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

  还得配置第二个仓库,携带大量第三方软件(nginx,redis,mongodb,mairadb等)   wget
-O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 2.你得了解yum的仓库目录   cd /etc/yum.repos.d/ #在这个目录第一层的repo文件就会被识别问yum软件仓库 3.清空yum缓存,清空centos官方的yum软件缓存   yum clean all 4.生成新的阿里云的yum缓存   yum makecache

 

-wget  在一个资源url的命令
-apt-get ubuntu底下的yum
-使用yum仓库,不仅仅可以使用第三方的yum仓库,还是可以指定官方的yum源(好比mariadb数据库的官方yum源,软件包最新)
-rpm手动安装,得处理依赖关系
-自由选择版本,且可以扩展第三方功能的安装方式,叫做源码编译安装

 

2.centos7下编译安装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

 

2.下载python3的编代码包

wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
解压缩 
tar xf Python-3.6.7.tar.xz 

 

3.进入解压缩生成的源码文件夹

cd Python-3.6.7

 

4.执行编译三部曲的命令

第一曲:找到一个[配置的可执行文件,configure ],执行它,且指定软件安装位置
./configure --prefix=/opt/python367/

第二曲:在上一步,会生成一个makefile,编译安装,在linux下必须用gcc工具去编译,使用的命令时make
make 
第三曲:这一步是执行安装,会生成一个
/opt/python367文件夹,可用的解释器都在这里了 make install

 

5.配置环境变量,便于快捷使用python3

1.先获取当前的PATH变量,然后把python3的bin目录加进去
echo $PATH 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin

2.永久修改PATH的值
-第一个是软连接
-第二种是直接修改/etc/profile ,系统全局的配置文件,每个用户在登陆系统的时候,都会加载这个文件 
vim /etc/profile
写入新的PATH变量
PATH="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin"


3.还得重新登陆,或者手动读取这个/etc/profile 
source /etc/profile #让这个文件中的变量生效

 

 

虚拟环境virtualenv以及 virtualenvwrapper工具管理python开发环境

virtualenv

virtualenv可以在系统中建立多个不同并且相互不干扰的虚拟环境。

可以帮助我们管理不同 Python 环境的绝好工具

# 关闭防火墙操作
systemctl stop firewalld
systemctl disable firewalld


1.下载虚拟环境的模块,它是python的一个模块,用pip安装
  pip3 install -i https://pypi.douban.com/simple virtualenv

2.用命令创建一个虚拟环境 venv_django2
  virtualenv --no-site-packages --python=/opt/python367/bin/python3.6 venv_django2
  #解释 --no-site-packages 创建的新的venv,不携带任何模块,是个纯洁的python解释器环境
  --python 指定以哪个解释器为本体,创建新的虚拟环境 


3.激活虚拟环境,系统会将venv的解释器目录,加到PATH的最前面
  cd bin
  source activate
  在激活虚拟环境的时候,注意检查下,命令和解释器是否来自于虚拟环境里面
  which pip3
  which python3
4.在虚拟环境下,安装新的模块,管理项目
  pip3 install -i https://pypi.douban.com/simple django==2.0.1
  # django3版本存在问题 pip3 install -i https://pypi.douban.com/simple django==3.0b1

  创建django项目 
  django-admin startproject s23_django2

  # 修改django的settings.py 中ALLOW_HOSTS=['*']
  # 进入vim
  vim s23_django3/s23_django3/settings.py 
  ALLOWED_HOSTS=['*']

5.启动项目
  python3 s23_django3/manage.py runserver 0.0.0.0:9999

6.退出虚拟环境命令
  deactivate

 

 

wwwww

 

virtualenvwrapper

虚拟环境工具2:


virtualenvwrapper ,升级版的虚拟环境工具

使用virtualenvwrapper管理你的虚拟环境(virtualenv),其实他就是统一管理虚拟环境的目录,并且省去了source的步骤

1.安装 ,不要激活虚拟环境 
  pip3 install -i https://pypi.douban.com/simple virtualenvwrapper

2.修改配置文件,每次开机就加载 virtualenvwrapper 这个工具

1.打开一个用户个人的环境变量配置文件
  全局配置文件 /etc/profile #每个用户登陆都生效
  用户个人配置文件 ~/.bash_profile 

  vim ~/.bash_profile #root在登陆的时候,会读取这个文件中的代码 

2.填入如下信息,针对你自己的python环境修改

  export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录
  export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #添加virtualenvwrapper的参数,生成干净隔绝的环境
  export VIRTUALENVWRAPPER_PYTHON=/opt/python367/bin/python3.6 #指定python解释器
  source /opt/python367/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本

3.此时可以使用这个工具,快捷的创建虚拟环境

  mkvirtualenv 虚拟环境名  #创建虚拟环境 
  lsvirtualenv           #列出虚拟环境的名字 
  workon 虚拟环境名字      #激活或切换虚拟环境 
  lssitepackages         #列出虚拟环境中的模块信息,其实就是 
  cdvirtualenv           #进入虚拟环境家目录 
  cdsitepackages         #进入虚拟环境第三方模块目录 
   

 


nginx学习

卸载nginx,通过yum安装的,现在卸载掉
yum remove nginx -y # 

1.nginx是一个优秀的web服务器,也是反向代理,负载均衡服务器
2.安装nginx 
 # 三种方式推荐第三种
 1.yum安装
    yum install nginx -y #自动安装到某个目录,可以通过 rpm -ql nginx #进行查询安装 
 2.rpm安装,不推荐
 3.源代码编译安装 
    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 openssl openssl-devel -y
3.安装淘宝nginx 
 1,下载源代码
    wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
 2.解压缩tengine软件
    tar -zxvf tengine-2.3.2.tar.gz
 3.进入源代码目录,指定安装路径,开始编译安装
    ./configure --preifx=/opt/tngx232/
    make && make install 

 4.配置nginx的环境变量,
    vim /etc/profile #填入新的PATH
    PATH="/opt/python367/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/opt/tngx232/sbin"
    手动读取生效
    source /etc/profile 

 5.学习nginx的目录功能
    [root@s23_linux tngx232]# pwd
    /opt/tngx232
    [root@s23_linux tngx232]# ls
    conf 存放nginx.conf配置文件的
    html 存放静态文件的地方
    logs 存放nginx各种日志的
    sbin 存放nginx可执行命令的地儿

 6.启动nginx,直接输入nginx命令
    nginx -s reload #平滑重启nginx,不重启nginx,重新读取配置文件,立即生效
    nginx -s stop #停止nginx 
    nginx #启动nginx 
    nginx -t #检测nginx.conf的语法是否正确

4.学习nginx的虚拟主机功能 ,部署一个web站点
  找到安装nginx的目录

  [root@s23_linux html]# pwd
  /opt/tngx232/html
  [root@s23_linux html]# ls
  50x.html 55kai.jpg duige.html index.html test.mp4
  

  # 默认首页index.html
  # 新创建文件命令 youch 名字.html

  vim index.html
  <meta charset=utf8>
  <h1>太冷了,太冷了</h1>

  # 传入文件rz命令,选择文件

 

5.nginx的主配置文件学习

 

6.nginx的各种功能学习

1.修改nginx的server虚拟主机的端口以及各种配置
server {
    #nginx监听的地址 
    listen 85;
    #定义网站的域名
    server_name localhost;

    #charset koi8-r;
    #nginx的url匹配 , /这个斜杠就代表这样的请求: 192.168.13.117:85/ 
    #这个是最低级匹配,所有的请求都会进入location,进行处理
    location / {
        #root参数用于定义网页根目录,可以写绝对或者相对路径
        #root html;
        root /opt/s23html;
        #index参数定义网页的首页文件名字 
        index index.html index.htm;
        }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root html;
        }
      }

 

 

 

netstat -tunlp 查看端口

 

1.dns客户端配置文件 
vim /etc/resolv.conf 
  #修改如下内容

  nameserver 119.29.29.29 #nameserver填写值是 公网的dns服务器

  8.8.8.8 谷歌的公网dns
  114.114.114.114
  223.5.5.5 
  223.6.6.6 #阿里巴巴的dns服务
  119.29.29.29 #腾讯的dns服务器 

2.hosts文件,本地dns解析
  2.nginx的多虚拟主机功能 
    nginx的配置文件,多个server默认是自上而下的加载顺序,有先后顺序的
    1.基于域名的多虚拟主机 hosts文件,本地dns解析 
      第一步,在nginx.conf中配置俩server{}

      #第一个虚拟主机的功能
        server {
        #nginx监听的地址 80
        listen 80;
        #定义网站的域名,需要到hosts中写死的,假的域名
        server_name www.s23lol.com;

        #charset koi8-r;
        #nginx的url匹配 , /这个斜杠就代表这样的请求: 192.168.13.117:85/ 
        #这个是最低级匹配,所有的请求都会进入location,进行处理
        location / {
          #root参数用于定义网页根目录,可以写绝对或者相对路径
          #当请求时 www.s23lol.com的时候,就去/opt/s23lol文件夹中寻找资料
          root /opt/s23lol;
          #index参数定义网页的首页文件名字 
          index index.html index.htm;
        } 
      } 
      #第二个虚拟主机的功能
        server {
        listen 80;
        server_name www.s23hanju.com;
        #进行路径匹配,当请求时 www.s23hanju.com:80/斜杠的时候,就进入这个匹配
        location / {
          #定义网页根目录 
          root /opt/s23hanju;
          index index.html;
          }
        }
      1.1 分别创建/opt/s23lol 和/opt/s23hanju的文件夹,且创建资料
      1.2 在windows下修改hosts文件,填入以下内容
        C:\Windows\System32\drivers\etc\hosts 
        192.168.13.117 www.s23hanju.com 
        192.168.13.117 www.s23lol.com

3.学习nginx的404页面优化
  修改nginx.conf中的一个参数,如下配置

  location / {
    #root参数用于定义网页根目录,可以写绝对或者相对路径
    #root html;
    root /opt/s23lol;
    #index参数定义网页的首页文件名字 
    index index.html index.htm;
  }
  #error_page参数定义错误页面优化
    error_page 404 /404.html;

    在/opt/s23lol中创建一个404文件,进行错误页面优化

 

4.nginx的访问日志功能,检测用户的来源ip,访问时间,客户端地址信息

  就是在 nginx.conf 中找到http代码块,打开如下参数即可

  http {
    include mime.types;
    default_type application/octet-stream;

  #日志格式 
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';

  access_log logs/access.log main;
  access_log "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G" main;

  ....
  }

 

 

完成练习

1.虚拟环境装好,运行django1和django2

2.安装好nginx,配置好如下功能,展示页面

-nginx站点功能,提供一个jpg访问,如 192.168.13.117/s23.jpg
-nginx多虚拟主机功能,基于域名区分
www.s23lol.com
www.s23hanju.com

-nginx的404错误页面优化功能,展示错误页面
-nginx的访问日志功能配置




 

posted @ 2019-10-27 00:16  驰念  阅读(134)  评论(0编辑  收藏  举报