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开发环境
# 关闭防火墙操作 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
虚拟环境工具2:
virtualenvwrapper ,升级版的虚拟环境工具
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学习
1.nginx是一个优秀的web服务器,也是反向代理,负载均衡服务器
2.安装nginx
1.yum安装
yum install nginx -y #自动安装到某个目录,可以通过 rpm -ql nginx #进行查询安装
2.rpm安装,不推荐
3.源代码编译安装
3.安装淘宝nginx
1.首先解决源码编译安装所需的基础开发环境
1.首先解决源码编译安装所需的基础开发环境
1.首先解决源码编译安装所需的基础开发环境
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
1,下载源代码
wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
2.解压缩tengine软件
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,通过yum安装的,现在卸载掉
yum remove nginx -y #
7.启动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
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;
}
}
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
2.基于端口的多虚拟主机
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的访问日志功能配置