itzixueba

Linux

必读入门手册:鸟哥的私房菜

1. 简介

1.1 为什么学习Linux

1、 大部分服务端都是使用Linux操作系统

(Pyhton/JavaEE的项目是部署到服务器中的.企业级项目都部署在Linux上)

2、 一些企业和学校(国外学校)采用Linux进行研发和教学

3、 很多嵌入式开发使用Linux系统

4、 大数据、云计算,采用Linux操作系统(CentOS)

1.2 Linux系统的特点

1、 开放、开源、多用户的网络操作系统

2、 可靠地系统安全、良好的移植性

3、 出色的运行速度

4、 基于UNIX

5、 加入了GNU组织(GNU---自由软件组织 CopyLeft)

1.3 Linux的组成

1、内核:是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。

2、Shell(外壳):是系统的用户界面,提供了用户和内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。但它不仅是命令解释器,而且还是高级编程语言,shell编程。

3、文件系统:文件系统是文件存放在磁盘等存储设备上的组织方法,Linux支持多种文件系统,如ext3,ext2,NFS,SMB,iso9660等。类似于window的fat32

和ntfs

4、应用程序:标准的Linux操作系统都会有一套应用程序例如X-Window,Open Office等。

1.4 Linux版本

1、 内核版本,最新版本为5.98版本 http://www.kernel.org/

2、 发行版本,一些厂商将Linux系统内核与应用软件和文档包装起来,并提供一些安装界面和系统设定管理工具的一个软件包的集合,例如RedHat Linux,CentOS,Debian,Ubuntu(个人界面版), Novell/SuSE Linux等。

RedHat : Rhel(企业版收费的) CentOS(社区版)

Debian:Debian Ubuntu(桌面)

公司常用:Centos

2 Linux安装

2.1 安装虚拟机

虚拟机软件,可以帮我们模拟一台真实电脑!

  • VMWare
  • Virtualbox

https://www.cnblogs.com/itzixueba/p/13945524.html

https://blog.csdn.net/java_xinshou1/article/details/100010099

  • 安装重点
# 1. 虚拟的联网方式 桥连接,  NAT
相当于一台新电脑. 自动分配和主机一个网段的IP 
比如:  主机IP: 172.16.45.42  自动分配的: 172.16.45.xxx
# 2. 要打开网络开关
忘记打开,后期手动改网络配置文件

# 3. 手动分区(分配文件大小)
 boot 启动分区:  保存系统启动的引导文件的,大小一般300M/500M
 swap内存交换分区: 物理内存不足时.充当内存用!
 / 跟分区:   占剩余的所有空间!
    
linx系统中,无盘符概念! 只有文件!!!
# 4. 一定记住root密码
所有linxu系统.默认最高权限用户:root.  默认常用密码:root/123456
# 5. 记住自己IP
# window 电脑打查看Ip
ipconfig -all  
# centos   查看IP
ifconfig        # 或  addr /address
# ifconfig 默认不能用!,需要安装网络工具
yum -y install net-tools  # -y表示忽略安装提示  # yum 和 pip一样,都可以从软件内置仓库中下载资源

image-20201116200334716

2.1 VMWare使用

  • 使用快照备份和还原系统[经常使用]

右击系统菜单----快照---拍摄快照-->输入名字和介绍

右击系统菜单----快照---快照管理--->选择恢复到哪个

image-20201116194110961

image-20201116194235927

  • 克隆

右击系统--->管理--->克隆

image-20201116194427487

image-20201116194622236

  • 编辑虚拟机

image-20201116194736350

2.2 虚拟机中系统的联网

第1: 虚拟机联网方式(选桥接)

  • 桥连接: 相当于一台局域网中的新电脑!

和主机在同一个网段

IP: xxx.xxx.xxx.xxx IP地址由4位组成! xxx.xxx.xxx.256 1和256 都被路由器使用!

主机: 172.16.45.44

同一局域网段: 172.16.45.xx

IP的前两位相同, 就默认是一个局域网.是可以相互通讯的!

  • NAT连接: 不同的是IP的第4位, 最多模拟254台电脑!

  • NAT模式: 不同的是IP的第3位, xxx.xxx.1-255 组建大型局域网!

  • 仅主机(虚拟机和主机之间通讯)

image-20201116200454875

第2: 确保网络开关已经打开

# 1. 检查是否有IP,  检查网络状态
ifconfig     # 如果有IP.联网成功了!
service  network  status    # 检查网络装填!  可用显示active表示可用!

# 2. 查看网络配置文件(默认是动态分配IP,网络开关是关闭的:ONBOOT=no)
cat /etc/sysconfig/network-scripts/ifcg-ens33

# 3. 手动打开网络开关
必须改: ONBOOT="yes"  #打开
    
#4. 重新启动网络服务
service network restart   

第3: 手动修改网络配置文件打开网络开关

# 1. Linux自带vi文本编辑器      vim是vi的升级版(yum install -y  vim)
vi /etc/sysconfig/network-scripts/ifcg-ens33
# 2. 进入编辑模式
     键盘i键---->表示进入编辑模式/状态
     各种修改...
# 3. 保存退出
    按键 ESC  -----退出编辑状态
    :wq ---------- 保存退出
    :q! ---------- 不保存退出

# 4. 必须重启网络服务器
service network restart   

image-20201117142441374

image-20201117142947597

第4: 安装网络工具

centos mini版不自带网络工具的,需要手动下载

网络工具软件: net-tools

# 安装网络工具
yum  -y install   net-tools   # 默认ifconfig 不能用!

#查看IP的指令
ifconfig  

第5: 客户端(SSH)连接

image-20201117144444913

image-20201117144733277

3. Linux目录结构(重要)

在linux系统中,无盘符概念,都是文件/目录

image-20201117162427274

  • 自己软件安装位置: /usr/local
  • 系统配置:/etc
  • 还可以操作(home.root,opt) opt:是yum下载安装的地址
bin 存放二进制可执行文件(ls,cat,mkdir等) 
boot 存放用于系统引导时使用的各种文件 
dev 用于存放设备文件 
etc 存放系统配置文件 
home 存放所有用户文件的根目录 
lib 存放跟文件系统中的程序运行所需要的共享库及内核模块 
mnt 系统管理员安装临时文件系统的安装点 
opt 额外安装的可选应用程序包所放置的位置 
proc 虚拟文件系统,存放当前内存的映射 
root 超级用户目录 sbin 存放二进制可执行文件,只有root才能访问 
tmp 用于存放各种临时文件 
usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录 
var 用于存放运行时需要改变数据的文件

4. 常用的Linux指令

  • 查看常用命令文档

链接:https://pan.baidu.com/s/1uTwLeP8LbQkesVa2rXyV8w
提取码:wvia

  • Linux命令速查手册

链接:https://pan.baidu.com/s/1x7fGKdNvcTyvW4R59C-tGg
提取码:jywc

5. 软件下载和安装方式

从yum软件仓库源中下载

yum 和pip 指令一样,都可以从远程软件源/仓库中下载软件!

yum install -y  xxxx  #安装    -y 忽略安装提示!
yum remove  xxx       #卸载
yum update            #更新所有的软件源
yum update xxxx       #更新某个
yum list              #查看所有课安装的软件列表
yum search  xxx       #从软件源仓库中查找软件
  • 默认软件源地址:

image-20201117170033747

  • 添加新软件源(阿里的软件源仓库)

centos 自带的源位于国外服务器,可能下载速度慢!可以添加国内的软件仓库/软件源!

https://blog.csdn.net/jiangzhangha/article/details/85531022

wget 指令从某个网址中下载

# 默认Centos mini 版本 wget不存在
# 查本地wget指令是否可用
# rpm  -qa| grep \'wget\'  (了解)
# 安装
yum install -y wget
# 下载python3.6.6
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

image-20201117170557525

window下完安装包,传到linux中

6.Django项目发布

centos7+nginx+uwsgi+python3+django+其他依赖模块+ 数据库

python3.x --->底层运行环境

通过pip 安装第三方库(django,flask,pymysql,requests,....)

uwsgi: 项目发布软件,发布django项目(启动后就可以在浏览器访问django项目 )

​ 默认访问地址:http://127.0.0.1:8000/

nginx: web项目发布软件(比uwsgi强) 可以绑定域名! 做负载均衡....

数据库: mysql,sqlite, redis.......

6.1 安装开发工具包

耗时长!安装完后一定制作快照

# 1. 更新yum库
yum update -y
# 2. 下载开发工具集
yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel

6.2 安装Python3

centos 自带python2.7

# 1. 查看python是否安装
python -V
# 2. 查看python指令解析流程
which  python  # 看到python位置
cd /usr/bin
ls -al  python*   # 查看python相关指令

image-20201118194221477

需要安装python3.x

实现方式:添加 python3指令--->软件连接指向python3.6.6的安装目录

# 1. 下载Python3.6.6
cd /usr/local
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
# 2. 解压
tar -zxvf Python-3.6.6.tgz
# 3. 进入解压目录,编译
cd /usr/local/Python-3.6.6
./configure --prefix=/usr/local/python3 # 编译时会检查安装个包是否可用,且指定安装目录
# 4. 安装
cd /usr/local/Python-3.6.6
make 
make install 

# 5. 建立python3 指令软连接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
# 6. 测试python是否可用
python3 -V
#7. 建立pip3 软连接
ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

# 8.测试
pip3 -V
pip3 list

# 9. 更新pip3指令
pip3 install --upgrade pip



6.3 卸载python3

所有安装步骤: 下载安装包, 解压, 进入解压目录 ,编译, 安装, 建软连接, 加配置

所有软件删除步骤:

  1. 删了软件安装目录!

  2. 删除软件连接!

  3. 删除配置文件!

# 1. 进入  /usr/bin 目录,查看软连接
cd /usr/bin
ls -al python*
ls -al pip*

# 2. 删安装目录 (安装目录在/usr/local)
cd /usr/local
dir  # 查看目录
rm -rf python3 

image-20201119153608469

image-20201119153820640

6.4 建虚拟环境下载依赖库

习惯在 /data目录中新建 evn: 保存所有的虚拟环境!

​ wwwroot : 保存所有项目源码!

(个人习惯,其它人可根据自己的实际情况处理)

  • 建目录
mkdir -p /data/env    #  env保存所有虚拟环境    -p表示递归创建:如果data目录不存在,会自动创建!
mkdir -p /data/wwwroot   # 保存待发布的项目源码

image-20201119154401575

  • 创建虚拟环境
    • virtualenv/virtualenvwrapper django中文官网文档教程中使用
    • venv Python3.3 以后自带的虚拟环境管理软件!
    • pipenv pip和virtualenv的结合版
  • 使用venv创建虚拟环境
# 1. 进入虚拟环境目录
cd /data/env

# 2. 新建
python3 -m venv 虚拟环境名
python3 -m venv my_env01  # 新建的

# 3.激活
cd /data/env/my_env01/bin
source activate  # 退出  deactivate
# 4. pip安装软件指令
pip install  django==2.1.8
pip list 
pip uninstall django

#5. 导出虚拟环境中软件文档列表
pip freeze > 任意文件名.txt  
pip freeze > requirements.txt  

# 6. 根据依赖包的文本文档导入
pip install -r 文件名.txt
pip install -r  requirements.txt  

6.5 下载uwsgi

发布web项目需要:uwsgi+nginx [java,php支持]

uwsgi: 是python的第三方模块/库!

uwsgi 是web发布服务软件:

作用:1. 发布项目,在浏览器通过域名访问! 2. 动态解析请求,根据请求动态调用后台的业务逻辑! 2.

缺点: 对静态资源(文本,图片,视频,音乐)处理不好!

  • uwsgi

https://uwsgi-docs.readthedocs.io/en/latest/ConfigLogic.html

  • 安装
# 1.进入虚拟环境并激活
cd /data/env/my_env01/bin
source acticate
# 2. 安装
pip install uwsgi                # 注意:uwsgi必须进入虚拟环境后才能用!
# 3.为了方便使用,可以添加软连接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi # 可以不创,如果不创建,必须激活虚拟环境才能用!

6.7 安装nginx(默认监听80)

ngxinx : 强大的web项目发布服务软件!

   1. 支持域名解析
   2. 支持流量监控
   3. 对静态资源处理能力强大!
   4. 负载均衡配置. 反向解析等......
  • 通过yum安装

centos 的软件源中默认无nginx软件,centos软件源位置: /etc/yum.repos.d/

# 1.添加nginx的软件源
vi /etc/yum.repos.d/nginx.repo
# 按i进入编辑模式   
[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/7/$basearch/ 
gpgcheck=0 
enabled=1
# 保存退出
:wq
    
# 2. 安装
yum install -y  nginx
# 3. 添加为系统服务(可以开机自启动)
systemctl enable nginx
# 4. 启动/停止/重启
systemctl start/stop/reload  nginx  
# 5. 查看运行的端口
netstat  -atunp 
# 6. 本地访问nginx默认发布的首页
curl 127.0.0.1:80  # 80可以不写
    
# 7. 关闭防火墙,外网可以通过Ip访问nginx默认的首页
systemctl stop firewalld.service

  • 通过源码安装
# 1. 先下载
cd /usr/local
wget http://nginx.org/download/nginx-1.13.7.tar.gz
# 2. 解压
tar -zxvf nginx-1.13.7.tar.gz
# 3. 编译
cd nginx-1.13.7
./configure
# 4. 安装
make
make insatll 
# 5. 启动并访问默认页面
cd /usr/local/nginx/sbin
./nginx  #启动-------->启动成功后,可以访问默认的nginx页面
./nginx -s stop #停止
./nginx -s reload #重启
./nginx -t  #检查nginx.conf配置文件的语法

# 6. 检查运行状态
netstat  -atunp   # 查看80端口
curl 127.0.0.1:80  # 本地访问默认页面
http://IP地址:80 # 远程访问nginx默认页面 (前提:云服务器控制台手动打开80端口)

image-20201119170449252

image-20201119171030739

6.5 替换ngxin默认首页为自己的页面

# 1. 找nginx安装位置
whereis nginx #(安装位置etc 中,  网页在:/usr/share/nginx/html中)
# 2. 上传自己的网站到nginx的html目录
# /usr/share/nginx/html

image-20201119171511524

image-20201119171729251

注意:云服务器(比如:阿里云,腾讯云等...)依然拒绝访问!因为:云服务器的端口是通过后台管理界面控制的!

6.6 安装mysql

数据库: 可以安装mysql 也可以安装mariadb

  • mysql https://www.django.cn/article/show-2.html

  • maraidb https://www.cnblogs.com/itzixueba/p/13949469.html

  • mysql5.7安装

# 一、添加MySQL Yum库
# 二、选择要安装的MySQL版本
# 三、安装MySQL
# 四、设置MySQL密码。
# 五、阿里云开发3306端口,客户端连接并操作数据库

7. 发布django项目

发布django 项目三个步骤

  1. 本地新建djang项目正常运行
  2. 配置uwsgi
  3. 配置nginx
  4. 同步依赖模块
  5. 上传项目到服务器

1. 新建django项目

django项目

image-20201123100413614

image-20201123100507179

setting.py配置修改

#1. 允许任意IP访问
ALLOWED_HOSTS = [\'*\']

# 2. 导入自己的app
INSTALLED_APPS = [
   ....
    \'users\'
]
# 3.删除sqlite3的配置或配置连接mysql
# 4. 语言,时区.静态资源配置
LANGUAGE_CODE = \'zh-Hans\'
TIME_ZONE = \'Asia/Shanghai\'
USE_I18N = True
USE_L10N = True
USE_TZ = False


STATIC_URL = \'/static/\'  # 相对路径方式查找
STATICFILES_DIRS = (      # 通过项目绝对路径找
    os.path.join(os.path.join(BASE_DIR, \'static\')),
)



2.配置uwsgi

image-20201123101209601

#添加配置选择
[uwsgi]
#配置和nginx连接的socket连接
socket=127.0.0.1:8000
#配置项目路径,项目的所在目录
chdir=/data/wwwroot/mysite01/
#配置wsgi接口模块文件路径,也就是wsgi.py这个文件所在的目录名
wsgi-file=mysite01/wsgi.py
#配置启动的进程数
processes=4
#配置每个进程的线程数
threads=2
#配置启动管理主进程
master=True
#配置存放主进程的进程号文件
pidfile=uwsgi.pid
#配置dump日志记录
daemonize=uwsgi.log

uwsgi操作指令

# 启动
uwsgi  --ini  uwsgi.ini
显示 [uWSGI] getting INI configuration from uwsgi.ini 表明uwsgi运行成功
# # 
可能通过ps -ef|grep uwsgi   查看确认是否uwsgi启动.
#停止运行uwsgi,通过包含主进程编号的文件设置停止项目
uwsgi --stop uwsgi.pid
#重启uwsgi
uwsgi --reload uwsgi.pid

3. 上传项目到/data/wwwroot/

# 1. 命令启动项目查看是否能正常运行
cd /data/my_env02/bin
source activate             #激活虚拟环境
# 2. 进入项目
cd /data/wwwroot/mysite01
python manage.py runserver  

# 3. 新打开SSH客户端,内网访问8000
curl 127.0.0.1:8000 #成功表示项目运行良好

写nginx的配置文件

image-20201123111356025

# nginx的yum安装方式默认安装好的路径为/etc/nginx
# 在/etc/nginx/conf/中先备份一下nginx.conf文件,以防意外。
cp nginx.conf nginx.conf.bak
# 然后打开nginx.conf,把原来的内容删除,直接加入以下内容:
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen 80;
        server_name  127.0.0.1:80; #改为自己的域名,没域名修改为127.0.0.1:80
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8000;  #端口要和uwsgi里配置的一样
           uwsgi_param UWSGI_SCRIPT mysite01.wsgi;  #wsgi.py所在的目录名+.wsgi
           uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite01/; #项目路径
           
        }
        location /static/ {
        alias /data/wwwroot/mysite01/static/; #静态资源路径
        }
    }
}

# 执行./nginx -t命令先检查配置文件是否有错,没有错就执行以下命令:

# 重新启动nginx
systemctl reload nginx

5.启动项目

  1. runserver指令启动uwsgi测试项目是否正常访问!
  2. 启动uwsgi
  3. 检查nginx配置语法
  4. 启动ngxin
  5. 检查:端口. 内网访问,外网访问

uwsgi启动8000

# 1. 进入虚拟环境,激活
cd /data/env/my_env02/bin
source activate
# 2. 在虚拟环境中进入项目,启动uwsgi
cd /data/wwwroot/mysite01
uwsgi --ini uwsgi.ini  #启动
# 显示: [uWsgi] getting INI  configuration from uwsig.ini 表示成功
# 端口8000是否启动
netstat -atunp   #8000是启动的

启动nginx的80端口

# 1. 进入nginx目录
cd /usr/local/nginx/sbin
# 2. 检测语法
./nginx -t  #
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
# 3. 启动
./nginx   #启动
./nginx -s reload #重启
./nginx -s stop #停止
# 4. 检测80
netstat -atunp 
# 5. 本地测试
curl  127.0.0.1:80
# 6. 外网测试
http://172.16.45.53:80  # 

#7. 通过域名访问  
http://www.xxx.com
    

image-20201123112232568

image-20201123105309974

6. 通过域名访问

  • 更改nginx.conf 添加域名

image-20201124093344632

  • 阿里云后台开放80端口

image-20201124093923240

  • 访问:

www.xxx.com

7.多域名配置

有的时候我们一台服务器需要部署多个项目,那么我们应该怎么部署呢?

有的时候我们一台服务器需要部署多个项目,那么我们应该怎么部署呢?

1、进入Nginx的配置文件目录/usr/local/nginx/conf/,然后新建一个目录:

mkdir vhost

之后在vhost目录里建立两个以.conf结尾的文件(有几个项目就放几个),里面的内容如下:

server {
    listen       80;
    server_name  web01.django.cn;
    charset utf-8;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8001;  #端口要和uwsgi里配置的一样           
        uwsgi_param UWSGI_SCRIPT mysite01.wsgi;  #wsgi.py所在的目录名+.wsgi           
        uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite01/; #项目路径           
        }
    location /static/ {
        alias /data/wwwroot/mysite01/static/; #静态资源路径       
        }
    }

项目路径、端口、静态资源与所属项目对应好。注意:项目里的uwsgi端口不能与另一个项目重复。

2、/usr/local/nginx/conf/目录下的原来默认的nginx.conf文件,先备份一下,然后把里面的代码删除,修改成如下代码:

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    include /usr/local/nginx/conf/vhost/*.conf;#主要是这个地方,把新建的两配置文件包含进来
    server {
        listen 80 default_server;
        server_name _;
        return 404;
        }
    }

3、新建立一个虚拟环境,把新项目上传到到服务器。进入虚拟环境,在新的虚拟环境再装一次uwsgi,和安装项目所需依赖包,然后在项目根目录新建立一个uwsgi配置文件,里面的端口和配置文件名不要和其它项目相同,路径换成自己的项目路径。

4、在虚拟环境启动uwsgi,重启Nginx,就能成功访问。哪个项目不能访问,就把原来的uwsgi进行杀死,然后再进入对应虚拟环境,启动uwsgi即可。

8. SSL加密传输(https)

现在很多站长都会考虑将自己的站点从http升级到https,不仅是基于安全的考虑,有的也是因为第三方平台的限制,如谷歌浏览器会将http站点标记为不安全的站点,微信平台要求接入的微信小程序必须使用https等。

资料

#https://www.django.cn/article/show-4.html#ssl
#自动更新证书
https://juejin.cn/post/6865835195983986701?utm_source=gold_browser_extension

http和https区别

为了数据传输的安全,https在http的基础上加入了ssl协议,ssl协议依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。要想将http升级为https,只需要给http站点增加一个CA证书即可。

目前获取CA证书有两种途径:

  1. 购买收费的CA证书
  2. 获取免费的证书

收费的CA证书各大服务提供商都有卖,如阿里云、腾讯云等。

# 阿里 

https://common-buy.aliyun.com/? 

spm=5176.15089375.5806769250.1.4d241232910KYQ&commodityCode=cas#/buy 

# 腾讯 

https://buy.cloud.tencent.com/ssl

image-20201126103823937

7. 安装宝塔图形化控制面板

宝塔是带界面的服务器软件管理系统!

https://www.django.cn/article/show-30.html

7阿里云服务器开放端口

网络与安全---安全组--->创建一个安全组---配置

image-20201120153509429

必须手动打开某些端口:注意端口分为入口和出口

image-20201120153636797

image-20201120153850795

image-20201120154025254

安装mysql/Mariadb

Centos7操作系统YUM库列表里默认不再提供MySQL,已经被MariaDB代替。如果我们想通过YUM在线安装Mysql,我们需要添加MySQL Yum库

我们直接安装mysql的替代软甲:mariadb

参考:https://www.cnblogs.com/itzixueba/p/13949469.html

小结:检查系统环境

# 1. 检查python指令是否可用?
  检查python3指令是否可用
python -V
python3 -V
# 2.python 指令的解析过程
which python3
cd /usr/bin
ls -al python* # 看到python命令的指向!

# 3. 查看ngxin是否启动(80端口打开就是启动)
netstat -atunp    #查看所有正在运行的端口
# 4. 启动/暂停/重启 nginx
systemctl start/stop/reload  nginx  
kill -9 软件PIP编号  # kill  -9 49195  (强制杀死进程,经常需要杀死多遍)

# 5. 启动nginx,检查启动状态
systemctl start nginx
netstat -atunp
# 6. 可以访问默认的ngixn首页
curl 127.0.0.1:80  #80可省略
    
# 7.关闭防火墙(云服务器通过后台管理控制防火墙,不是通过命令控制的)
systemctl stop firewalld.service
# 8. 通过浏览器输入IP地址可以访问成功
http://IP:80 #http://172.16.45.53
     
    
# 9. 必须清楚浏览器的缓存! 否则错误页面会一直存在!

image-20201119152920215

image-20201120151943117

域名服务器介绍

域名:(网址,方便记忆)

  • www开头的域名是一级域名, 需要购买 (www.zhouzhengyang.cn)
  • 不以www开头的域名叫二级域名或子域名 1个一级域名包含N个二级域名
# 百度一级域名
www.baidu.con
# 二级/子
map.baidu.com  #百度地图
tieba.baidu.com # 百度贴吧
news.baidu.com  # 百度新闻
zhidao.baidu.com   #百度知道
m.baidu.com      #百度wap页
  • 域名后缀介绍
.com # 表示商业公司
.cn  #中国
.org  #国际域名
.edu  #学校等教育机构
.gov  #政府机构
...  .中国   .love  .top  
  • 购买
# 域名购买: 阿里云, 百度云,腾讯云, 华为云 ,新浪云 
# 阿里云域名购买
https://wanwang.aliyun.com/?spm=5176.19720258.J_8058803260.1294.e9392c4apaoN4P

image-20201117152639942

  • DNS域名解析

必须配置前缀: www/@/*

二级域名前缀: 任意

m.xxx.com #表示手机网站

blog.xxx.com #表示博客网站

mp3.xxx.com #表示音乐网站

movie.xxx.com #视频网站

image-20201117153059892

image-20201117153427538

服务器

服务器: 大内存,大硬盘,高CPU的 电脑主机! 而且24小时运行!

建议购买:BAT 三大公司云服务器 和 华为云服务器

  • 购买学生机

https://www.baidu.com/s?wd=%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%20%E5%AD%A6%E7%94%9F%E6%9C%BA&rsv_spt=1&rsv_iqid=0xb9158799000379dd&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=tb&rsv_sug2=0&rsv_btype=i&inputT=19738&rsv_sug4=22769

  • 阿里云服务器流程

https://blog.csdn.net/yundashi168/article/details/108536303

腾讯校园服务器

https://cloud.tencent.com/act/campus?fromSource=gwzcw.3775923.3775923.3775923&utm_medium=cpc&utm_id=gwzcw.3775923.3775923.3775923

wx_20201117172143.png

阿里服务器

https://www.aliyun.com/1111/ecs?utm_content=se_1007409450

wx_20201117172201.png

image-20201117154202267

重置密码

image-20201117155011311

  • 公网IP

image-20201117155036410

  • SSH客户端连接

image-20201117155146331

服务器备案

服务器必须在国家工信部备案,不备案只访问成功一次!

image-20210301094333349

阿里云官网首页点击备案---按照步骤完善备案资料,1到2周备案通过!

image-20201126094017850

image-20201126093654621

常用问题总结

  • 1. 建议安装Centos mini版

image-20201121093237021

  • 2. 如果安装的是带桌面的版本.CPU和内存一定调高!(2G,4核)
  • 3.安装时一定要打开网络开关

image-20201125102209274

如果忘记,需要更改ens33的配置文件ONBOOT=yes

# 更改网络配置,打开网络开关
vi  /etc/sysconfig/network-script/ifcg-ens33
# 打开网络开关
ONBOOT=yes
# 重启网络服务器
service network restart
  • 4.安装网络工具
#网络工具
yum install net-tools
# 查看本机IP
ifconfig

**5. 安装Python相关软件前必须下载Develops tools 和相关依赖软件 **

# 1. 更新yum库
yum update -y
# 2. 下载开发工具集  [必做]
yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel

6. 下载python3.x

通过源码安装python3.x

# 3.6.6
wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz
# 所有版本    
https://www.python.org/ftp/python/

7. 百度Centos7安装python3.x

https://www.cnblogs.com/anxminise/p/9650206.html

image-20201121094903980

image-20201121095255613

  • 8. 默认无SQLite3

https://www.cnblogs.com/anxminise/p/9650142.html

  • 9. 必须添加软连接
# 如何删除软连接
cd /usr/bin
rm -rf python3  

image-20201121095931749

  • 10.为什么pip3 软连接无法建立?

image-20201121100239599

image-20201121100407218

  • 安装软件是否安装成功?启动成功?关闭?
python3 -V
pip3 -V

# nginx 是否成功?
netstat -atunp    # 进程列表中有80端口.表示成功了!
curl 127.0.0.1   #访问默认的nginx首页面!

kill -9 进程PID  #万能杀死进程/软件
# uwsgi ? django ? flask 等第三方库成功?
pip  list 
  • 外网为什么不能访问???
# 1. 自己服务器,检查防火墙是否开放了该端口!
# 2. 云服务器,通过后台管理界面控制端口是否开放?
# 3. 任何web项目,访问前.必须清空浏览器缓存!
  • 各种配置是语法是否正确?

总结

centos 服务器维护过程

  1. 安装虚拟机(virtualenv)/申请云服务器

  2. 安装centos(安装网络工具,查看IP)

  3. 虚拟机使用(联网,克隆,快照)

  4. SSH客户端连接Linux,上传文件(FinalShell)

  5. 软件环境搭建

    1. yum update 更新yum库
    2. 安装开发工具包
    3. 检测python是否安装
    4. 安装python3.x
    5. 检测python3 和pip3 指令是否可用
    6. 创建虚拟环境,安装依赖库
    7. 安装nginx
    8. 安装mysql/mariadb
    9. 配置项目(uwsgi.ini)
    10. 上传项目
    11. 启动(检测项目是否能正常启动,启动uwsgi,配置ngxin,检测nginx配置文件语法, 启动nginx)
    12. 访问项目: 虚拟机需要关闭防火墙/云服务器配置开放端口
  6. 域名和服务器

    1. 申请域名
    2. 申请云服务器
    3. 云服务器发布项目
    4. DNS域名解析 (通过域名访问到项目)
      默认只能成功一次,会提示需要备案!
    5. 多域名配置(blog.xxx.cn,music.xxx.cn m.xxx.cn)
    6. ssl加密(配置https加密传输协议)
    7. 安装服务器监控软件(宝塔)
    8. 宝塔管理各种运行环境(php,java,python)
  7. docker 容器技术简化服务器管理!

  8. 其他的服务器运维工具软件

分类:

技术点:

相关文章: