[步骤] 源码安装软件包(以 Nginx 为例)

软件准备:

在 Nginx 官网上下载搭建集群所需软件 Nginx:

http://nginx.org/en/download.html

正文:

步骤目录:
步骤一:系统环境要求

步骤二:安装 Nginx 的依赖软件

步骤三:安装 Nginx
3.1 添加一个用于启动 Nginx 的用户身份
3.2 解压 Nginx 安装包
3.3 进入 Nginx 安装包目录
3.4 配置 Nginx
3.5 编译并安装 Nginx

步骤四:测试 Nginx
4.1 启动 Nginx
4.2 访问 Nginx 实现的网页服务
4.3 查看已安装 Nginx 的版本

具体的操作步骤:
步骤一:系统环境要求
(1)服务器的系统需要是 CentOS 7.X 版本
(2)服务器系统需要有 yum 源

步骤二:安装 Nginx 的依赖软件
# yum -y install gcc pcre-devel openssl-devel

步骤三:安装 Nginx
3.1 添加一个用于启动 Nginx 的用户身份
# useradd -s /sbin/nologin nginx

3.2 解压 Nginx 安装包
# tar -xvf nginx-1.16.1.tar.gz

3.3 进入 Nginx 安装包目录
# cd nginx-1.16.1

3.4 配置 Nginx
# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module

3.5 编译并安装 Nginx
# make && make install

步骤四:测试 Nginx
4.1 启动 Nginx
# /usr/local/nginx/sbin/nginx

4.2 访问 Nginx 实现的网页服务
# curl 127.0.0.1

4.3 查看已安装 Nginx 的版本
# /usr/local/nginx/sbin/nginx -V

[步骤] 通过 systemctl 管理服务(以 Nginx 程序为例)

注意:在通过 systemctl 管理 Nginx 之前,要先安装 Nginx

正文:

步骤一:生成 /etc/systemd/system/nginx.service 程序启动文件
# vi /etc/systemd/system/nginx.service
[Unit]

Description=nginx server daemon

Documentation=man:nginx(8)

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

步骤二:导入新的 Nginx systemd 配置文件
# systemctl daemon-reload

步骤三:使用 systemd 管理 Nginx
# systemctl start nginx.service
# systemctl enable nginx.service
# systemctl status nginx.service

[步骤] 通过 rpm-build 制作 rpm 安装包并安装应用(以 Nginx 为例)

软件准备:

在 Nginx 官网上下载搭建集群所需软件 Nginx:

http://nginx.org/en/download.html

正文:

步骤目录:
步骤一:系统环境要求

步骤二:准备 rpm-build 软件
2.1 安装 rpm-build
2.2 生成 rpm-build 的目录
2.3 rpmbuild 目录介绍

步骤三:制作 Nginx 软件的 rpm 包
3.1 将 Nginx 的源码安装包放在固定的位置
3.2 制作 Nginx 的 nginx.spec 文件
3.3 SPEC 配置文件里的内容说明
3.4 安装 Nginx 软件的依赖包
3.5 生成 Nginx rpm 软件包
3.6 查看新生成的 Nginx rpm 软件包

步骤四:使用新生成的 Nginx rpm 软件包
4.1 安装刚刚新生成的 Nginx rpm 软件包
4.2 启动 Nginx 服务
4.3 查看 Nginx 服务的启动状态
4.3.1 查看 Nginx 网页是否可以访问
4.3.2 查看 Nginx 的端口有没有启动

具体的操作步骤:
步骤一:系统环境要求
(1)服务器的系统是 CentOS 7.X 版本
(2)服务器系统需要有 yum 源

步骤二:准备 rpm-build 软件
2.1 安装 rpm-build
# yum -y install rpm-build

2.2 生成 rpm-build 的目录
# rpmbuild -ba nginx.spec
error: failed to stat /root/nginx.spec: No such file or directory
# ls /root/rpmbuild/
BUILD  BUILDROOT  RPMS	SOURCES  SPECS	SRPMS

2.3 rpmbuild 目录介绍
# ls /root/rpmbuild/
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

其中:各个目录的作用如下
SOURCES :存放源代码、补丁和图标等文件
SPECS :存放用于管理 rpm 制作过程的 spec 软件包文件打包制作过程
BUILD :存放解压后的文件
RPMS :存放制作好的二进制包
SRPMS :存放由 rpmbuils 制作好的源码安装包

步骤三:制作 Nginx 软件的 rpm 包
3.1 将 Nginx 的源码安装包放在固定的位置
# cp nginx-1.16.1.tar.gz /root/rpmbuild/SOURCES/

3.2 制作 Nginx 的 nginx.spec 文件
# vi /root/rpmbuild/SPECS/nginx.spec
Name:nginx
Version:1.16.1
Release:1.0
Summary:Nginx is a web server software.

License:GPL
URL:www.nginx.org
Source0:%{name}-%{version}.tar

%description
nginx is an HTTP and reverse proxy server ... ...

%post
useradd nginx

%prep
%setup -q

%build
./configure --user=nginx --group=nginx --with-http_ssl_module
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}

%files

%doc
/usr/local/nginx/*

%changelog

3.3 SPEC 配置文件里的内容说明
Name:nginx #软件的名称
Version:1.16.1 #软件版本
Release:1.0 #RPM 的版本
Summary: Nginx is a web server software. #软件的描述    

Group:
License:GPL #软件使用的协议
URL:    www.nginx.org #软件的官网
Source0:%{name}-%{version}.tar #软件源码文件的名称

#BuildRequires: #软件编译安装时需要的依赖包
#Requires: #软件安装时所需要的依赖包

%description #软件的详细描述

%post
useradd nginx #软件安装后执行的脚本,例如创建账户,非必要操作

%prep #软件安装前的准备,例如解压
%setup –q #自动解压软件的源码包,并 cd 进入刚刚解压出来的目录

%build #软件编译安装时所需要执行的命令
./configure
make %{?_smp_mflags}
%install #软件安装时需要执行的命令
make install DESTDIR=%{buildroot}

%files
%doc
/usr/local/nginx/* #对软件中的哪些文件与目录打包

%changelog

3.4 安装 Nginx 软件的依赖包
# yum -y install gcc pcre-devel openssl-devel

3.5 生成 Nginx rpm 软件包
# rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec

3.6 查看新生成的 Nginx rpm 软件包
# ls /root/rpmbuild/RPMS/x86_64/nginx-1.16.1-1.0.x86_64.rpm
# rpm -qpi /root/rpmbuild/RPMS/x86_64/nginx-1.16.1-1.0.x86_64.rpm

步骤四:使用新生成的 Nginx rpm 软件包
4.1 安装刚刚新生成的 Nginx rpm 软件包
# rpm -ivh /root/rpmbuild/RPMS/x86_64/nginx-1.16.1-1.0.x86_64.rpm

4.2 启动 Nginx 服务
# /usr/local/nginx/sbin/nginx

4.3 查看 Nginx 服务的启动状态
4.3.1 查看 Nginx 网页是否可以访问
# curl http://127.0.0.1/

4.3.2 查看 Nginx 的端口有没有启动
# ss -ntulap | grep 80

[命令] Linux 逻辑卷管理命令的使用

内容目录:
内容一:LVM 的原理
1.1 LVM 的目的
1.2 LVM 的结构
1.2.1 LVM 的第一层
1.2.2 LVM 的第二层
1.2.3 LVM 的第三层

内容二:LVM 管理的命令集

内容三:快速部署 LVM 的思路

内容四:创建 LVM 逻辑卷 
4.1 创建名为 systemvg 卷组
4.2 创建名为 vo 的逻辑卷
4.3 查看已创建的逻辑卷 /dev/systemvg/vo

内容五:扩展 LVM 逻辑卷大小
5.1 检查现有逻辑卷 /dev/systemvg/vo 大小
5.2 检查逻辑卷所在卷组 systemvg 的剩余空间,看是否够逻辑卷 vo 扩展
5.3 当卷组的剩余空间不足时,要先扩展卷组(如果卷组的空间足够大,则可以跳过次步骤)
5.3.1 扩展卷组的格式
5.3.2 扩展卷组的案例
5.3.2.1 扩展 systemvg 卷组
5.3.2.2 查看扩展后的 systemvg 卷组
5.3.2.3 之后就可以扩展逻辑卷了
5.4 当卷组的剩余空间充足时,可直接扩展逻辑卷
5.4.1 扩展逻辑卷的格式
5.4.2 扩展逻辑卷的案例
5.4.2.1 扩展 vo 逻辑卷
5.4.2.2 查看扩展
5.5 更新文件系统大小
5.5.1 更新文件系统大小的目的
5.5.2 刷新文件系统容量的格式
5.5.3 刷新文件系统的案例

内容六:创建 LVM 卷组时固定 PE 的大小
5.1 创建卷组的时候固定 PE 大小
5.1.1 创建卷组时固定 PE 大小的格式
5.1.2 创建卷组时设置 PE 大小的案例
5.2 创建逻辑卷的时候指定 PE 个数
5.2.1 创建逻辑卷的时候指定 PE 个数的格式
5.2.2 创建逻辑卷的时候指定 PE 个数的案例
5.2.3 查看刚刚创建的制定了 PE 大小和个数的逻辑卷(会发现它的大小是精确的)

具体的内容:
内容一:LVM 的原理
1.1 LVM 的目的
将零散的空闲存储整合成虚拟磁盘,再将虚拟的磁盘整合成虚拟的分区

1.2 LVM 的结构
1.2.1 LVM 的第一层
物理卷
Physical Volume

1.2.2 LVM 的第二层
卷组
Volume Group

1.2.3 LVM 的第三层
逻辑卷
Logical Volume

内容二:LVM 管理的命令集
功能          物理卷管理    卷组管理    逻辑卷管理
Scan 扫描    pvscan     vgscan    lvscan
Create 创建  pvcreate   vgcreate  lvcreate
Display 显示 pvdisplay  vgdisplay lvdisplay
Remove 删除  pvremove   vgremove  lvremove
Extend 扩展  /             vgextend  lvextend

内容三:快速部署 LVM 的思路
(1)准备至少一个空闲分区(/dev/vdb1)
(2)创建卷组:vgcreate 卷组名 空闲分区...
(3)创建逻辑卷:lvcreate -L 大小 -n 名称 卷组名

内容四:创建 LVM 逻辑卷 
4.1 创建名为 systemvg 卷组
# vgcreate systemvg /dev/vdb1
.. ..

4.2 创建名为 vo 的逻辑卷
# lvcreate -L 200M -n vo systemvg
 Logical volume "vo" created

4.3 查看已创建的逻辑卷 /dev/systemvg/vo
# lvscan
ACTIVE '/dev/systemvg/vo' [200.00 MiB] inherit

内容五:扩展 LVM 逻辑卷大小
5.1 检查现有逻辑卷 /dev/systemvg/vo 大小
# lvscan | grep vo
ACIVE '/dev/systemvg/vo' [200.00 MiB] inherit
......

5.2 检查逻辑卷所在卷组 systemvg 的剩余空间,看是否够逻辑卷 vo 扩展
# vgdisplay systemvg | grep Free
 Free PE/Size 4/300.00 MiB

5.3 当卷组的剩余空间不足时,要先扩展卷组(如果卷组的空间足够大,则可以跳过次步骤)
5.3.1 扩展卷组的格式
# vgextend 卷组名 空闲分区...

5.3.2 扩展卷组的案例
5.3.2.1 扩展 systemvg 卷组
# vgextend systemvg /dev/vdb3
 Physical volume "/dev/vdb3" successfully created
 Volume group "systemvg" successfully extended

5.3.2.2 查看扩展后的 systemvg 卷组
# vgdisplay systemvg | grep 'Free'
 Free PE/Size 128/512.00 MiB

5.3.2.3 之后就可以扩展逻辑卷了

5.4 当卷组的剩余空间充足时,可直接扩展逻辑卷
5.4.1 扩展逻辑卷的格式
# lvextend -L 新大小 /dev/卷组名/逻辑卷名

5.4.2 扩展逻辑卷的案例
5.4.2.1 扩展 vo 逻辑卷
# lvextend -L 300MiB /dev/systemvg/vo
 Extending logical volume vo to 300.00 MiB
 Logical volume vo successfully resized

5.4.2.2 查看扩展
# lvscan
.. ..
ACTIVE '/dev/systemvg/vo' [300.00 MiB] inherit

5.5 更新文件系统大小
5.5.1 更新文件系统大小的目的
对于格式化过的逻辑卷,扩容后应该通知 Linux 内核。否则,使用 df 等工具时看到的仍是旧的大小

5.5.2 刷新文件系统容量的格式
resize2fs EXT3/4 设备 或者 xfs_growfs XFS 设备

5.5.3 刷新文件系统的案例
# resize2fs /dev/systemvg/vo
.. ..

# df -hT /vo
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/systemvg-vo ext4 171M 1.6M 157M 1% /vo

内容六:创建 LVM 卷组时固定 PE 的大小
5.1 创建卷组的时候固定 PE 大小
5.1.1 创建卷组时固定 PE 大小的格式
# vgcreate -s PE大小 卷组名 空闲分区...

5.1.2 创建卷组时设置 PE 大小的案例
# vgcreate -s 16MiB datastore /dev/vdb6 Physical volume "/dev/vdb4" 
successfully created Volume group "datastore" successfully created 

5.2 创建逻辑卷的时候指定 PE 个数
5.2.1 创建逻辑卷的时候指定 PE 个数的格式
# lvcreate -l PE个数 -n 逻辑卷名 卷组名

5.2.2 创建逻辑卷的时候指定 PE 个数的案例
# lvcreate -l 50 -n database datastore 
 Logical volume "database" created

5.2.3 查看刚刚创建的制定了 PE 大小和个数的逻辑卷(会发现它的大小是精确的)
# lvscan
 ACTIVE '/dev/datastore/database' [800.00 MiB] inherit
 ACTIVE '/dev/systemvg/vo' [300.00 MiB] inherit