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的访问日志功能配置