在上一篇博客中,写到了如何使用rpm命令来安装、卸载软件等,但是大家都知道,各个软件包之间可能存在依赖关系,如果安装某个软件需要额外的依赖其他若干的包,那么我们就需要将其他额外的包一个一个的安装上去,这样的一个过程是非常耗时的,所以出现了一个前端工具,如yum,dnf,apt-get等,本次博客就centos上的yum和程序包的编译安装做出详细的描述,最后还通过实际的例子介绍了程序包的编译安装。
yum的实现原理
yum实现软件包的获取其实是基于C/S架构的,C为你的主机,S为yum repository(文件服务器或者本地yum repository),yum repository里面存储了众多的rpm包,以及包的相关元数据文件(包含软件包的列表和依赖关系等)和计算出来的特征码,一般放在repodata目录下面。
当我们使用yum安装一个软件包的时候,会进行如下几个步骤:
1.本地主机会在配置文件里面找到yum repository的指向,并建立连接;
2.从yum repository获取元数据文件和特征码放在缓存里面;
3.通过查看元数据文件获知需要安装的软件包和其依赖的软件的名称并向yum repository发起请求;
4.本地主机获取到软件包后进行安装。
5.安装好后,rpm包会被删除,但是元数据文件和特征码会被保存下来,其目的是为了当你再向yum repository发起连接的时候,先会向yum repository获取到特征码和本地缓存的特征码做对比,如果相同则说明yum repository里面的文件没有发生改变,如果不同,则说明yum repository里面的文件发生了改变,这时候就需要重新向yum repository获取元数据文件了。
通常情况下yum repository都是文件服务器,你可以通过URL进行访问,如:
ftp://path/to/repository/ 通过FTP进行访问和传输
http://path/to/repository/ 通过http进行访问和传输
nfs://path/to/repository/ 通过nfs进行访问和传输
file:///path/to/repository/ 用于本地的yum仓库
yum的配置文件
yum的配置文件有:
/etc/yum.conf:为所有仓库提供公共配置
/etc/yum.repos.d/下以repo结尾的文件:为仓库的指向提供配置
yum.conf的内容:
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=
debuglevel=
logfile=/var/log/yum.log
exactarch=
obsoletes=
gpgcheck=
plugins=
installonly_limit=
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
yum.conf的内容
cachedir:缓存目录,默认情况下在"/var/cache/yum";
keepcache:是否保存缓存,0是不保存,1是保存;
debuglevel:Debug信息的输出等级,范围为0-10,默认为2
logfile:存放log的文件路径
exactarch:是否精确匹配平台,默认是1,精确匹配平台
obsolete:这个选项仅仅会影响升级,简单的说相当于upgrade,允许更新旧版本的rpm包
gpgcheck:是否经验安装包的来源合法性
plugins:是否允许使用插件安装插件,1表示安装
installonly_limit:允许同时保持的内核包
bugtracker_url:bug的追踪的url
distroverpkg:指定一个软件包,yum会根据这个包判断你的发行版本,这里是centos-release
具体的可以是使用命令man yum.conf查看
下面我们来看一下/etc/yum.repos.d/下的文件
[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
这里就有很多以repo结尾的文件,都是yum repository的指向:
让我们来看一下/etc/yum.repo.d/CentOS-Base.repo,其他里面的yum repository都是disable的:
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
# [base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=
enabled=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS-Base.repo
repository指向的定义:
[repositoryID] #具有唯一性
name=some name for this repository
baseurl=url://path/to/repository #yum repository的url可以为多个,路径下必须有repodata
enable= #是否开启,1为开启,0为关闭,不写的话,默认开启
gpgckeck=
gpgkey=URL
cost=
enablegroup= #是否允许使用包组,默认是允许
$releasever:当前os的发行版的主版本号
$arch:平台
$basearch:基础平台
$YUM0-$YUM9:用户自定义的变量
yum命令的用法
yum [options] [command] [package ...]
command is one of:
* install package1 [package2] [...]
* update [package1] [package2] [...]
* update-to [package1] [package2] [...]
* update-minimal [package1] [package2] [...]
* check-update
* upgrade [package1] [package2] [...]
* upgrade-to [package1] [package2] [...]
* distribution-synchronization [package1] [package2] [...]
* remove | erase package1 [package2] [...]
* autoremove [package1] [...]
* list [...]
* info [...]
* provides | whatprovides feature1 [feature2] [...]
* clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
* makecache [fast]
* groups [...]
* search string1 [string2] [...]
* shell [filename]
* resolvedep dep1 [dep2] [...]
(maintained for legacy reasons only - use repoquery or yum provides)
* localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use install)
* localupdate rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use update)
* reinstall package1 [package2] [...]
* downgrade package1 [package2] [...]
* deplist package1 [package2] [...]
* repolist [all|enabled|disabled]
* repoinfo [all|enabled|disabled]
* repository-packages <enabled-repoid> <install|remove|remove-or-reinstall|remove-or-
yum命令
1.显示repository列表:
repolist [all|enabled|disabled]
all:显示所有的yum repository
enable:不带参数默认显示启用的yum repository
disable:显示关闭的yum repository
[root@localhost yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.cn99.com
* updates: mirrors.aliyun.com
repo id repo name status
!base//x86_64 CentOS- - Base ,
!extras//x86_64 CentOS- - Extras
!updates//x86_64 CentOS- - Updates ,
[root@localhost yum.repos.d]# yum repolist all
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.cn99.com
* updates: mirrors.aliyun.com
repo id repo name status
C7.0.1406-base/x86_64 CentOS-7.0. - Base disabled
C7.0.1406-centosplus/x86_64 CentOS-7.0. - CentOSPlus disabled
C7.0.1406-extras/x86_64 CentOS-7.0. - Extras disabled
C7.0.1406-fasttrack/x86_64 CentOS-7.0. - CentOSPlus disabled
C7.0.1406-updates/x86_64 CentOS-7.0. - Updates disabled
C7.1.1503-base/x86_64 CentOS-7.1. - Base disabled
C7.1.1503-centosplus/x86_64 CentOS-7.1. - CentOSPlus disabled
C7.1.1503-extras/x86_64 CentOS-7.1. - Extras disabled
C7.1.1503-fasttrack/x86_64 CentOS-7.1. - CentOSPlus disabled
C7.1.1503-updates/x86_64 CentOS-7.1. - Updates disabled
C7.2.1511-base/x86_64 CentOS-7.2. - Base disabled
C7.2.1511-centosplus/x86_64 CentOS-7.2. - CentOSPlus disabled
C7.2.1511-extras/x86_64 CentOS-7.2. - Extras disabled
C7.2.1511-fasttrack/x86_64 CentOS-7.2. - CentOSPlus disabled
C7.2.1511-updates/x86_64 CentOS-7.2. - Updates disabled
!base//x86_64 CentOS- - Base enabled: ,
base-debuginfo/x86_64 CentOS- - Debuginfo disabled
base-source/ CentOS- - Base Sources disabled
c7-media CentOS- - Media disabled
centosplus//x86_64 CentOS- - Plus disabled
centosplus-source/ CentOS- - Plus Sources disabled
cr//x86_64 CentOS- - cr disabled
!extras//x86_64 CentOS- - Extras enabled:
extras-source/ CentOS- - Extras Sources disabled
fasttrack//x86_64 CentOS- - fasttrack disabled
!updates//x86_64 CentOS- - Updates enabled: ,
updates-source/ CentOS- - Updates Sources disabled
yum repolist举例
2.显示程序包
yum list [all | glob_exp1] [glob_exp2] [...]
yum list {available|installed|updates} [glob_exp1] [...]
3.安装程序包
yum install package1 [package2] [...]
yum reinstall package1 [package2] [...] (重新安装)
4.升级程序包
yum update [package1] [package2] [...]
yum downgrade package1 [package2] [...] (降级)
5.检查可用升级
yum check-update
6.卸载程序包
yum remove | erase package1 [package2] [...]
7.查看程序包information
yum info package1 [package2] [...]
8.查看指定的特性(可以是某文件)是由哪个程序包所提供的
yum provides | whatprovides feature1 [feature2] [...]
[root@localhost yum.repos.d]# yum provides /bin/ls
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.cn99.com
* updates: mirrors.aliyun.com
coreutils-8.22-.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo : base
Matched from:
Filename : /bin/ls coreutils-8.22-.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo : @anaconda
Matched from:
Filename : /bin/ls
yum provides举例
9.清理本地缓存
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
10.构建缓存
yum makecache
11.搜索
yum search string1 [string2] [...] #以指定的关键字搜索程序包及Summary信息
12.查看指定包所依赖的capabilities
yum deplist package1 [package2] [...]
13.查看yum事务历史
yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
14.安装及升级本地程序包
yum localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use install)
yum localupdate rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use update)
15.包组管理的相关命令
yum groupinstall group1 [group2] [...]
yum groupupdate group1 [group2] [...]
yum grouplist [hidden] [groupwildcard] [...]
yum groupremove group1 [group2] [...]
yum groupinfo group1 [...]
16.yum的命令选项
--nogpgcheck:禁止进行gpg check;
-y: 自动回答为“yes”;
-q:静默模式;
--disablerepo=repoidglob:临时禁用此处指定的repo;
--enablerepo=repoidglob:临时启用此处指定的repo;
--noplugins:禁用所有插件;
如何使用光盘当作本地yum repository?
(1)挂载光盘至某目录,例如/media/cdrom
[root@localhost yum.repos.d]# mount -r /dev/sr0 /media/cdrom/
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/cl-root % /
devtmpfs % /dev
tmpfs % /dev/shm
tmpfs % /run
tmpfs % /sys/fs/cgroup
/dev/sda1 % /boot
tmpfs % /run/user/
/dev/sr0 % /media/cdrom
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@localhost yum.repos.d]# vim CentOS-Local.repo
[CentOS7]
name=CentOS7 rpm from disk
baseurl=file:///media/cdrom/
gpgcheck=
[root@localhost cdrom]# yum repolist #显示可用的仓库列表
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id repo name status
CentOS7 CentOS7 rpm from disk ,
repolist: ,
[root@localhost cdrom]#
如何创建yum仓库?
前面写到baseurl指向的yum repository的下必须有repodata目录,repodata目录下存放着元数据和特征码等信息,那么如何生存呢?
我们现在/xfs目录下放了一些关于xfs的rpm包:
[root@localhost xfs]# ll
total
-rw-r--r--. root root Sep : xfsprogs-4.5.-.el7_3.i686.rpm
-rw-r--r--. root root Sep : xfsprogs-4.5.-.el7_3.x86_64.rpm
-rw-r--r--. root root Sep : xfsprogs-4.5.-.el7_3.i686.rpm
-rw-r--r--. root root Sep : xfsprogs-4.5.-.el7_3.x86_64.rpm
-rw-r--r--. root root Sep : xfsprogs-devel-4.5.-.el7_3.i686.rpm
-rw-r--r--. root root Sep : xfsprogs-devel-4.5.-.el7_3.x86_64().rpm
-rw-r--r--. root root Sep : xfsprogs-devel-4.5.-.el7_3.x86_64.rpm
-rw-r--r--. root root Sep : xfsprogs-devel-4.5.-.el7_3.i686.rpm
-rw-r--r--. root root Sep : xfsprogs-devel-4.5.-.el7_3.x86_64.rpm
使用createrepo来生成:
[root@localhost ~]# createrepo /xfs/
Spawning worker with pkgs
Spawning worker with pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@localhost ~]# ll /xfs/
total
drwxr-xr-x. root root Sep : repodata
-rw-r--r--. root root Sep : xfsprogs-4.5.-.el7_3.i686.rpm
-rw-r--r--. root root Sep : xfsprogs-4.5.-.el7_3.x86_64.rpm
-rw-r--r--. root root Sep : xfsprogs-4.5.-.el7_3.i686.rpm
-rw-r--r--. root root Sep : xfsprogs-4.5.-.el7_3.x86_64.rpm
-rw-r--r--. root root Sep : xfsprogs-devel-4.5.-.el7_3.i686.rpm
-rw-r--r--. root root Sep : xfsprogs-devel-4.5.-.el7_3.x86_64().rpm
-rw-r--r--. root root Sep : xfsprogs-devel-4.5.-.el7_3.x86_64.rpm
-rw-r--r--. root root Sep : xfsprogs-devel-4.5.-.el7_3.i686.rpm
-rw-r--r--. root root Sep : xfsprogs-devel-4.5.-.el7_3.x86_64.rpm
[root@localhost ~]# ll /xfs/repodata/
total
-rw-r--r--. root root Sep : 048072895365ec38b370d70bc209f3fd08a54bba535a2feb497448fa7b3d622e-other.xml.gz
-rw-r--r--. root root Sep : 29cf78ac1dcc6c2443c5a2d9a135a4a7f1591f44a1964c984c1664000ac86ee6-other.sqlite.bz2
-rw-r--r--. root root Sep : 2a83ee6cbdb7d0ca6063f91aa8e382271a05ae1e868f637beb0549758511325b-filelists.xml.gz
-rw-r--r--. root root Sep : 40f7e90c6dc338f5292d2cb1ee3d2153241fb714eca0365d2419eadfe7fda2e0-filelists.sqlite.bz2
-rw-r--r--. root root Sep : 5c4be0e2d956a133454d00f51c3833d44d13c60375937bf59bce4258210d9075-primary.sqlite.bz2
-rw-r--r--. root root Sep : 5c7e3e89ad6e3210fee5ca5519fcd26bb60f4356d9035da5e273bb69521b8be3-primary.xml.gz
-rw-r--r--. root root Sep : repomd.xml #特征码
createrepo生成repodata
然后在配置文件里面添加就行了,这样本地创建的yum repository就生效了:
[root@localhost yum.repos.d]# vim CentOS-Local.repo
[CentOS7]
name=CentOS7 rpm from disk
baseurl=file:///media/cdrom/
gpgcheck=
enable= [xfs]
name=xfs for centos7
baseurl=file:///xfs/
gpgcheck=
enable=
程序包的编译安装
我们有的时候并不能获取到相应软件的rpm包或者是原本就是没有rpm包的,但是一般项目网站都会给我们提供对应的源代码,然后我们可以使用工具进行编译安装。
编译C源代码的前提:
提供开发环境及开发工具。
开发工具:make,gcc等
开发环境:开发库,头文件,标准库等
在centos中是通过“包组”提供开发组件
在centos6中:
yum groupinstall "Development Tools"
yum groupinstall "Server Platform Development"
在centos7中:
yum groupinstall "Development Tools" #即可
然后就可以开始编译安装了!
建议:安装前查看install或者readme文件
第一步:
运行configure脚本(./configure):
(1)通过传递参数,指定启动特性、安装路径等,执行时会参考用户指定以及Makefile.in文件(有的时候可能没有configure文件和Makefile.in文件,autoconf根据指定的配置文件可以生成configure文件,automake可以根据指定的配置文件生成Makefile.in文件),最终生成Makefile。
(2)检查依赖到外部环境
选项:
--help:获取其他支持的使用选项
--prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/
--sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置
Optional Features: 可选特性
--disable-FEATURE
--enable-FEATURE[=ARG]
Optional Packages: 可选包
--with-PACKAGE[=ARG]
--without-PACKAGE
如果不指定--prefix选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件放在/usr/local/etc,其他的资源文件放在/usr/local/share。指定prefix的好处就是当你想卸载软件的时候,直接删除该安装目录就行了,也可以将整个目录拷贝到其他的机器上使用,前提是同样的操作系统。
第二步:
make(make其实是一个项目的构建工具,它可以对代码进行预处理、编译等操作)
根据makefile文件,构建应用程序
第三步:
make install
用来安装,它从Makefile中读取指令,安装到指定的位置。
安装后的配置:
编译安装apache 2.2并启动此服务
1.解压缩并展开文件:
[root@localhost ~]# tar xf httpd-2.2..tar.bz2
2.查看目录下的文件:
[root@localhost ~]# cd httpd-2.2.
[root@localhost httpd-2.2.]#
[root@localhost httpd-2.2.]# ll
total
-rw-r--r--. Nov ABOUT_APACHE
-rw-r--r--. Jul acinclude.m4
-rw-r--r--. Oct Apache.dsw
drwxr-xr-x. Jul : build
-rw-r--r--. Aug BuildAll.dsp
-rw-r--r--. Jul BuildBin.dsp
-rwxr-xr-x. Sep buildconf
-rw-r--r--. Jun : CHANGES
-rw-r--r--. Feb config.layout
-rwxr-xr-x. Jul : configure
-rw-r--r--. May configure.in
drwxr-xr-x. Jul : docs
-rw-r--r--. Nov emacs-style
-rw-r--r--. May httpd.dep
-rw-r--r--. Jun httpd.dsp
-rw-r--r--. May httpd.mak
-rw-r--r--. Jul : httpd.spec
drwxr-xr-x. Jul : include
-rw-r--r--. Jan INSTALL
-rw-r--r--. Dec InstallBin.dsp
-rw-r--r--. Nov LAYOUT
-rw-r--r--. May libhttpd.dep
-rw-r--r--. Jan libhttpd.dsp
-rw-r--r--. May libhttpd.mak
-rw-r--r--. Jan LICENSE
-rw-r--r--. Nov Makefile.in
-rw-r--r--. Jan Makefile.win
drwxr-xr-x. Jul : modules
-rw-r--r--. Jan NOTICE
-rw-r--r--. Mar NWGNUmakefile
drwxr-xr-x. Jul : os
-rw-r--r--. Jan README
-rw-r--r--. Aug README.platforms
-rw-r--r--. Dec README-win32.txt
-rw-r--r--. Mar ROADMAP
drwxr-xr-x. Jul : server
drwxr-xr-x. Jul : srclib
drwxr-xr-x. Jul : support
drwxr-xr-x. Jul : test
-rw-r--r--. Oct VERSIONING
查看
3.运行configure脚本,并指定软件安装目录为/usr/local/apache2,指定配置文件的路径为/etc/http2
[root@localhost httpd-2.2.]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2 #这里指定了配置文件的存放位置,也可以不指定,如果不指定默认在安装目录下有一个conf目录,建议不指定
4.make
[root@localhost httpd-2.2.]#make
5.make install
[root@localhost httpd-2.2.]#make install
如果没有任何报错就代表已经安装成功了,我们去安装目录下面看一下(如果指定了安装目录,所有的东西都会被放在指定的目录下面,建议大家这么做,因为以后想删除软件的时候,直接将整个目录删除了进行了,本次例子中的配置文件是放在/etc/httpd2下,如果卸载也要记得删除此目录):
[root@localhost httpd-2.2.]# cd /usr/local/apache2/
[root@localhost apache2]# ll
total
drwxr-xr-x. root root Sep : bin
drwxr-xr-x. root root Sep : build
drwxr-xr-x. root root Sep : cgi-bin
drwxr-xr-x. root root Sep : error
drwxr-xr-x. root root Jul : htdocs
drwxr-xr-x. root root Sep : icons
drwxr-xr-x. root root Sep : include
drwxr-xr-x. root root Sep : lib
drwxr-xr-x. root root Sep : logs
drwxr-xr-x. root root Sep : man
drwxr-xr-x. root root Jul : manual
drwxr-xr-x. root root Sep : modules
好的,接下来进行安装后的一些工作:
1.导出二进制配置文件至PATH环境变量中:
[root@localhost apache2]# vim /etc/profile.d/apache.sh export PATH=/usr/local/apache2/bin:$PATH [root@localhost apache2]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost apache2]#
[root@localhost apache2]# source /etc/profile.d/apache.sh #让进程重新读取一些配置文件
[root@localhost apache2]# echo $PATH
/usr/local/apache2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
2.导出库文件路径
[root@localhost apache2]# vim /etc/ld.so.conf.d/apache2.conf /usr/local/apache2/lib
[root@localhost apache2]# ldconfig #使用ldconfig重新生成缓存
3.导出头文件,创建软连接
[root@localhost include]# ln -sv /usr/local/apache2/include/ /usr/include/apache2
‘/usr/include/apache2’ -> ‘/usr/local/apache2/include/’
4.导出帮助手册
[root@localhost include]man apachectl
以上步骤完成之后,我们可以运行服务了:
[root@localhost ~]# apachectl start #启动,停用则使用apachectl stop
[root@localhost ~]# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0.0.0.0: 0.0.0.0:* LISTEN
tcp 127.0.0.1: 0.0.0.0:* LISTEN
tcp 192.168.172.134: 192.168.172.1: ESTABLISHED
tcp6 ::: :::* LISTEN #当80端口被监听说明已经启用成功了
tcp6 ::: :::* LISTEN
tcp6 ::: :::* LISTEN
可以直接在浏览器里面查看啦!It works(记得关闭防火墙,systemctl stop firewalld)!