前言:
了解Linux应用程序基础,学习如何查询RPM软件包信息了解安装、升级、卸载、RPM软件包 ,如何与运用yum仓库,学习源代码编译安装
一、Linux应用程序基础
1、应用程序与系统命令的关系
2、典型应用程序的目录结构
3、常见的软件包封装类型
1.rpm:自动安装包,把安装过程的各种操作编译封装到里面,适合新手使用
2.deb:在乌班图(ubuntu,是界面)系统中使用,不在centos中使用
题外话:1.LINUX家族,下面Redhat,红帽 三个认证(开源但是不是免费,基础服务免费)
因为红帽的这个原因,有人不爽,就由此产生了社区(系统开发者,都是大佬),他们设计了centos
服务器中用centos的多,政府不差钱,用的红帽的多
有一个面向客户端的linux系统的是ubuntu系统(最好用),开源,纯免费,特别适用于软件开发人群
全球中最好用,中国用不了,因为长城防火墙挡住了
3.debian,是linux的早期版本系统,是乌版图的前身,服务端和客户端都具备功能后来衍生出了乌版图和kaili
4.kaili是黑客专用的渗透工具,包括攻防攻击
kaili占用资源很少,通常是安装在树莓派中
5.suse是德国的linux系统,被ISP运营商所使用(电信,移动,联通) 定制版
源代码软件包:原始代码,是人能看得懂的
jazz——————class,class看不懂,是机器能识别的
绿色免安装的软件包:解压后可以直接使用
4、RPM包管理工具
yum可以解决RPM的依赖关系
红色是名字,版本号,发布次数
版本号第一个是大版本,第二个是小版本
i386,i686出现,就代表是32位系统
64位可以最大支持2t内存,瓶颈在于读写
现在已经有了内存数据库,redis
服务器只能插半高显卡
二、查询RPM软件包信息
1、查询已安装的RPM软件信息
rpm -q【子选项】 【软件名】
-q 查看基本信息,即是否安装
代码语言:javascript复制[root@localhost ~]# rpm -q httpd #查询httpd工具是否已安装
未安装软件包 httpd
常用选项
-qa 查看系统已安装的所有软件包
grep 过滤筛选
代码语言:javascript复制[root@localhost ~]# rpm -qa #查询当前系统已安装的所有软件包,显示过多,这里就不展示
[root@localhost ~]# rpm -qa | grep "mdadm" #后面加| grep筛选出想要查询的信息
mdadm-4.0-5.el7.x86_64
-qi 查看已安装的软件包的详细信息,-q已安装,-i(information),组合起来用
代码语言:javascript复制[root@localhost ~]# rpm -qi mdadm #查看mdadm的详细信息
Name : mdadm
Version : 4.0
Release : 5.el7
Architecture: x86_64
Install Date: 2019年10月23日 星期三 13时36分47秒
Group : System Environment/Base
Size : 1044798
License : GPLv2
Signature : RSA/SHA256, 2017年08月11日 星期五 02时20分11秒, Key ID 24c6a8a7f4a80eb5
Source RPM : mdadm-4.0-5.el7.src.rpm
Build Date : 2017年08月05日 星期六 05时44分20秒
Build Host : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.kernel.org/pub/linux/utils/raid/mdadm/
Summary : The mdadm program controls Linux md devices (software RAID arrays)
Description :
The mdadm program is used to create, manage, and monitor Linux MD (software
RAID) devices. As such, it provides similar functionality to the raidtools
package. However, mdadm is a single program, and it can perform
almost all functions without a configuration file, though a configuration
file can be used to help with some common tasks.
-ql 查看软件包安装的所有的文件列表(list)
代码语言:javascript复制[root@localhost ~]# rpm -ql mdadm
/etc/cron.d/raid-check
/etc/libreport/events.d/mdadm_event.conf
/etc/sysconfig/raid-check
/usr/lib/systemd/system-shutdown/mdadm.shutdown
/usr/lib/systemd/system/mdadm-grow-continue@.service
/usr/lib/systemd/system/mdadm-last-resort@.service
/usr/lib/systemd/system/mdadm-last-resort@.timer
/usr/lib/systemd/system/mdmon@.service
/usr/lib/systemd/system/mdmonitor.service
/usr/lib/tmpfiles.d/mdadm.conf
/usr/lib/udev/rules.d/63-md-raid-arrays.rules
/usr/lib/udev/rules.d/65-md-incremental.rules
/usr/sbin/mdadm
/usr/sbin/mdmon
/usr/sbin/raid-check
/usr/share/doc/mdadm-4.0
/usr/share/doc/mdadm-4.0/COPYING
/usr/share/doc/mdadm-4.0/ChangeLog
/usr/share/doc/mdadm-4.0/TODO
/usr/share/doc/mdadm-4.0/mdadm.conf-example
/usr/share/doc/mdadm-4.0/mdcheck
/usr/share/doc/mdadm-4.0/syslog-events
/usr/share/man/man4/md.4.gz
/usr/share/man/man5/mdadm.conf.5.gz
/usr/share/man/man8/mdadm.8.gz
/usr/share/man/man8/mdmon.8.gz
/var/run/mdadm
-qf 根据已知的文件,去查看它属于哪个软件包,由哪个软件包所安装
代码语言:javascript复制[root@localhost ~]# rpm -qf /usr/sbin/mdmon
mdadm-4.0-5.el7.x86_64
-qc 查看软件包的所有配置文件 (配置文件后缀 conf,cnf,ini;前两个看得多,PHP的文件是inin)
代码语言:javascript复制[root@localhost ~]# rpm -qc mdadm
/etc/cron.d/raid-check
/etc/sysconfig/raid-check
/usr/lib/tmpfiles.d/mdadm.conf
-qd 查看软件包的文档有哪些(what),在哪些位置(where)
代码语言:javascript复制[root@localhost ~]# rpm -qd mdadm
/usr/share/doc/mdadm-4.0/COPYING
/usr/share/doc/mdadm-4.0/ChangeLog
/usr/share/doc/mdadm-4.0/TODO
/usr/share/doc/mdadm-4.0/mdadm.conf-example
/usr/share/doc/mdadm-4.0/mdcheck
/usr/share/doc/mdadm-4.0/syslog-events
/usr/share/man/man4/md.4.gz
/usr/share/man/man5/mdadm.conf.5.gz
/usr/share/man/man8/mdadm.8.gz
/usr/share/man/man8/mdmon.8.gz
2 、查询未安装的RPM软件包文件中信息
rpm -qp 【子选项】RPM包文件
常用选项
-qpi 查看未安装的软件包的详细信息
-qpl 查看未安装软件包的所有文件
-qpc 查看未安装软件包的所有配置文件 (配置文件后缀 conf,cnf,ini;前两个看得多,PHP的文件是inin)
-qpd 查看未安装软件包的文档 小结:未安装的命令选项就是在已安装的命令选项上多一个p,没有-a,-f子选项
三:安装、升级、卸载RPM软件包
1、安装或升级RPM软件包
安装或升级RPM软件
rpm 【选项】 RPM包文件
常用选项
-i install 安装软件包
-U 更新软件包,若没有该软件包,则自动安装该软件
-F 检查更新软件包,若没有该软件包,不会自动安装该软件
2、卸载指定的RPM软件
rpm -e 软件名
-e 卸载
3 、辅助选项
–force 强制执行
–nodeps 解决依赖性关系(但是基本上没啥用,因为这个命令的作用是忽略依赖关系,直接安装,治标不治本)
-h 友好显示(即以#号键显示安装进度条)
-v 显示详细过程信息
例如:rpm -qd httpd 查看httpd的安装包的文档
yum remore httpd -y 重新安装httpd
rpm -ivh 安装并显示进度和详细过程
rpm -evh 卸载并显示进度和详细过程
4、维护RPM数据库
init 初始化的意思,rebuild重建 db(database)数据库
导入验证公共密钥 --import 导入的意思,仅作校验作用,没有其他作用
5、使用rpm软件实验
1.点开虚拟机,配置把镜像文件挂载进去,在右下角cd中,虚拟机设置,设备状态勾选已连接 2.接下来进行挂载
代码语言:javascript复制[root@localhost ~]# cd /dev
[root@localhost dev]# ls
agpgart log sda2 tty15 tty42 ttyS3
autofs loop-control sdb tty16 tty43 uhid
block lp0 sdb1 tty17 tty44 uinput
bsg lp1 sdc tty18 tty45 urandom
btrfs-control lp2 sdc1 tty19 tty46 usbmon0
bus lp3 sdd tty2 tty47 usbmon1
cdrom mapper sdd1 tty20 tty48 usbmon2
centos mcelog sde tty21 tty49 vcs
char md0 sde1 tty22 tty5 vcs1
console md1 sg0 tty23 tty50 vcs2
core md2 sg1 tty24 tty51 vcs3
cpu mem sg2 tty25 tty52 vcs4
cpu_dma_latency mqueue sg3 tty26 tty53 vcs5
crash net sg4 tty27 tty54 vcs6
disk network_latency sg5 tty28 tty55 vcsa
dm-0 network_throughput shm tty29 tty56 vcsa1
dm-1 null snapshot tty3 tty57 vcsa2
dm-2 nvram snd tty30 tty58 vcsa3
dri oldmem sr0 tty31 tty59 vcsa4
fb0 port stderr tty32 tty6 vcsa5
fd ppp stdin tty33 tty60 vcsa6
full ptmx stdout tty34 tty61 vfio
fuse pts tty tty35 tty62 vga_arbiter
hidraw0 random tty0 tty36 tty63 vhci
hpet raw tty1 tty37 tty7 vhost-net
hugepages rfkill tty10 tty38 tty8 vmci
hwrng rtc tty11 tty39 tty9 vsock
initctl rtc0 tty12 tty4 ttyS0 zero
input sda tty13 tty40 ttyS1
kmsg sda1 tty14 tty41 ttyS2
mout 设备名称 挂载点(本地目录)
mount /dev/sr0(光盘驱动设备) 或 /mnt/
代码语言:javascript复制[root@localhost dev]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost dev]# ls -l /mnt
总用量 664
-rw-rw-r--. 3 root root 14 9月 5 2017 CentOS_BuildTag
drwxr-xr-x. 3 root root 2048 9月 5 2017 EFI
-rw-rw-r--. 3 root root 227 8月 30 2017 EULA
-rw-rw-r--. 3 root root 18009 12月 10 2015 GPL
drwxr-xr-x. 3 root root 2048 9月 5 2017 images
drwxr-xr-x. 2 root root 2048 9月 5 2017 isolinux
drwxr-xr-x. 2 root root 2048 9月 5 2017 LiveOS
drwxrwxr-x. 2 root root 641024 9月 5 2017 Packages
drwxr-xr-x. 2 root root 4096 9月 5 2017 repodata
-rw-rw-r--. 3 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--. 3 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root 2883 9月 6 2017 TRANS.TBL
RPM-GPG-KEY-CentOS-7就是光驱内的公钥 光驱里面的packages目录 专门存放软件包
bind没有安装,可以安装个bind(DNS方面的工具)软件
代码语言:javascript复制[root@localhost Packages]# rpm -q bind
未安装软件包 bind
[root@localhost Packages]# rpm -ivh bind-
#此时按两下tab键,可以把前面为bind的文件全部展示出来
bind-9.9.4-50.el7.x86_64.rpm
bind-chroot-9.9.4-50.el7.x86_64.rpm
bind-dyndb-ldap-11.1-3.el7.x86_64.rpm
bind-libs-9.9.4-50.el7.x86_64.rpm
bind-libs-lite-9.9.4-50.el7.x86_64.rpm
bind-license-9.9.4-50.el7.noarch.rpm
bind-pkcs11-9.9.4-50.el7.x86_64.rpm
bind-pkcs11-libs-9.9.4-50.el7.x86_64.rpm
bind-pkcs11-utils-9.9.4-50.el7.x86_64.rpm
bind-utils-9.9.4-50.el7.x86_64.rpm
代码语言:javascript复制[root@localhost Packages]# rpm -ivh bind-9.9.4-50.el7.x86_64.rpm
警告:bind-9.9.4-50.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:bind-32:9.9.4-50.el7 ################################# [100%]
可以-q查看验证一下,还有-ql,-qc,-qf,-qd等选项可以试一试
代码语言:javascript复制[root@localhost Packages]# rpm -q bind
bind-9.9.4-50.el7.x86_64
然后再试试卸载命令-e
代码语言:javascript复制[root@localhost Packages]# rpm -evh bind
准备中... ################################# [100%]
正在清理/删除...
1:bind-32:9.9.4-50.el7 ################################# [100%]
[root@localhost Packages]# rpm -q bind #验证是否已卸载
未安装软件包 bind
bind没有依赖关系,httpd有依赖关系
代码语言:javascript复制[root@localhost Packages]# rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm
警告:httpd-2.4.6-67.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
错误:依赖检测失败:
/etc/mime.types 被 httpd-2.4.6-67.el7.centos.x86_64 需要
httpd-tools = 2.4.6-67.el7.centos 被 httpd-2.4.6-67.el7.centos.x86_64 需要
libapr-1.so.0()(64bit) 被 httpd-2.4.6-67.el7.centos.x86_64 需要
libaprutil-1.so.0()(64bit) 被 httpd-2.4.6-67.el7.centos.x86_64 需要
rpm自带解决依赖关系,所以就如上所示,就要一直下载被依赖的软件包 所以在生产环境中就会很少用,可能一个软件会逼得你转行—
6、解决软件包依赖关系方法
1)安装有依赖关系的多个软件时 被依赖的软件包需要先安装
可同时指定多个.rpm包文件进行安装
2)卸载有依赖关系的多个软件时 依赖其他程序的软件包需要先卸载
可同时指定多个软件名进行卸载
3)忽略依赖关系 结合“–nodeps”选项,但可能导致软件异常 重点记住:
使用rpm命令查询RPM软件信息的常用选项
使用rpm命令安装、升级、卸载RPM软件包的常用选项
典型应用程序的目录结构
常见的软件包封装类型
四、源代码编译安装
1、源代码编译概述
1)使用源代码安装软件的优点
获得最新的软件版本,及时修复bug
根据用户需要,灵活定制软件功能
2)应用场合举例
安装较新版本的应用程序时
当前安装的程序无法满足需要时
需要为应用程序添加新的功能时
源代码安装模式可以视为iDIY模式,可以自定义自己的需要安装,依据官方发布的对应版本的软件手册操作
2、编译安装源代码包
1)Tarball封包
.tar.gz和.tar.bz2格式居多
软件素材参考:http://sourceforge.net
2)完整性校验
md5sum 校验工具命令
除此之外还有zip压缩包, unzip 解压命令 -d 指定解压为位置
unzip 软件包名 -d 解压至指定路径
mount.cifs //192.168.254.10/linuxs /abc 挂载
代码语言:javascript复制[root@localhost ~]# mkdir /abc
[root@localhost ~]# mount.cifs //192.168.254.10/linuxs /abc
Password for root@//192.168.254.10/linuxs:
[root@localhost /]# cd /abc
[root@localhost abc]# ls
apr-1.4.6.tar.gz apr-util-1.4.1.tar.gz httpd-2.4.2.tar.gz
解压三个gz压缩包
代码语言:javascript复制[root@localhost abc]# tar -xzvf apr-util-1.4.1.tar.gz -C /opt
'tar -x解压 -z指gzip格式 -v显示详细过程 -f 执行 压缩包 -C 指定解压目标路径'
[root@localhost abc]# tar -xzvf apr-1.4.6.tar.gz -C /opt
[root@localhost abc]# tar -xzvf httpd-2.4.2.tar.gz -C /opt
yum install gcc gcc-c 使用yum自动安装gcc gcc-c 编译器
代码语言:javascript复制[root@localhost abc]# yum install gcc gcc-c
3、编译安装过程
4 、手工编译安装四步骤
1) tar解包 1)习惯上将软件包释放到/usr/src/目录
2)解包后的软代码文件位置:
/usr/stc/软件名-版本号/ 3)实例
(2)./configure 配置 1)使用源码目录中的configure脚本
2)执行“./configure 00help”可查看帮助
3)典型的配置选项
–prefix=软件安装目录 4)示例
(3)make编译(make是转编译的过程) 执行make命令
(4)make安装 执行make install 命令
示例
安装后的测试、应用、维护软件
使用前
启动Apache 运行lynx 127.0.0.1查看本机Apache运行状态 (httpd.conf httpd 配置文件 apachectl start 启动apache)
手工编译安装步骤小结
1:找到源码包 先挂载,在宿主机共享目录内找到要安装的压缩包
代码语言:javascript复制[root@localhost ~]# mkdir /abc
[root@localhost ~]# mount.cifs //192.168.254.10/linuxs /abc
Password for root@//192.168.254.10/linuxs:
[root@localhost /]# cd /abc
[root@localhost abc]# ls
apr-1.4.6.tar.gz apr-util-1.4.1.tar.gz httpd-2.4.2.tar.gz
2:解压源码包到指定位置
代码语言:javascript复制[root@localhost abc]# tar -xzvf apr-util-1.4.1.tar.gz -C /opt
'tar -x解压 -z指gzip格式 -v显示详细过程 -f 执行 压缩包 -C 指定解压目标路径'
[root@localhost abc]# tar -xzvf apr-1.4.6.tar.gz -C /opt
[root@localhost abc]# tar -xzvf httpd-2.4.2.tar.gz -C /opt
接下来把apr-1.4.6和apr-until-1.4.1放入到httpd对应的目录内
代码语言:javascript复制[root@localhost abc]# cd /opt '切换到/opt'
[root@localhost opt]# ls
apr-1.4.6 apr-util-1.4.1 httpd-2.4.2 rh
[root@localhost opt]# mv apr-1.4.6/ httpd-2.4.2/srclib/apr
[root@localhost opt]# mv apr-util-1.4.1/ httpd-2.4.2/srclib/apr-until
[root@localhost opt]# cd httpd-2.4.2/srclib/
[root@localhost srclib]# ls
apr apr-until Makefile.in
[root@localhost srclib]# cd ../../
软件包整理完毕,接下来进行配置 3:configure配置 先提前安装下编译软件,先安装环境包,即编译器等相关软件
pcre作用在网页当中的语言
zlib是网页压缩处理的图片传输
代码语言:javascript复制[root@localhost opt]# yum install gcc gcc-c pcre pcre-devel zlib-devel -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.cn99.com
* updates: mirrors.163.com
软件包 gcc-4.8.5-39.el7.x86_64 已安装并且是最新版本
软件包 gcc-c -4.8.5-39.el7.x86_64 已安装并且是最新版本
软件包 pcre-8.32-17.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 pcre-devel.x86_64.0.8.32-17.el7 将被 安装
---> 软件包 zlib-devel.x86_64.0.1.2.7-18.el7 将被 安装
--> 正在处理依赖关系 zlib = 1.2.7-18.el7,它被软件包 zlib-devel-1.2.7-18.el7.x86_64 需要
--> 正在检查事务
---> 软件包 zlib.x86_64.0.1.2.7-17.el7 将被 升级
---> 软件包 zlib.x86_64.0.1.2.7-18.el7 将被 更新
--> 解决依赖关系完成
依赖关系解决
========================================================================================
Package 架构 版本 源 大小
========================================================================================
正在安装:
pcre-devel x86_64 8.32-17.el7 base 480 k
zlib-devel x86_64 1.2.7-18.el7 base 50 k
为依赖而更新:
zlib x86_64 1.2.7-18.el7 base 90 k
事务概要
========================================================================================
安装 2 软件包
升级 ( 1 依赖软件包)
总下载量:619 k
Downloading packages:
No Presto metadata available for base
(1/3): zlib-devel-1.2.7-18.el7.x86_64.rpm | 50 kB 00:00:00
(2/3): pcre-devel-8.32-17.el7.x86_64.rpm | 480 kB 00:00:00
(3/3): zlib-1.2.7-18.el7.x86_64.rpm | 90 kB 00:00:00
----------------------------------------------------------------------------------------
总计 1.2 MB/s | 619 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在更新 : zlib-1.2.7-18.el7.x86_64 1/4
正在安装 : zlib-devel-1.2.7-18.el7.x86_64 2/4
正在安装 : pcre-devel-8.32-17.el7.x86_64 3/4
清理 : zlib-1.2.7-17.el7.x86_64 4/4
验证中 : pcre-devel-8.32-17.el7.x86_64 1/4
验证中 : zlib-1.2.7-18.el7.x86_64 2/4
验证中 : zlib-devel-1.2.7-18.el7.x86_64 3/4
验证中 : zlib-1.2.7-17.el7.x86_64 4/4
已安装:
pcre-devel.x86_64 0:8.32-17.el7 zlib-devel.x86_64 0:1.2.7-18.el7
作为依赖被升级:
zlib.x86_64 0:1.2.7-18.el7
完毕!
configure配置
代码语言:javascript复制[root@localhost httpd-2.4.2]# ./configure --prefix=/usr/local/httpd --enable-deflate --enable-so --enable-rewrite --enable-charset-lite -enable-cgi
4:make编译
代码语言:javascript复制[root@localhost httpd-2.4.2]# make '编译,进入目录'
/opt/httpd-2.4.2/srclib/apr/libtool --silent --mode=link gcc -std=gnu99 -g -O2 -pthread -o mod_alias.la -rpath /usr/local/httpd/modules -module -avoid-version mod_alias.lo
/opt/httpd-2.4.2/srclib/apr/libtool --silent --mode=compile gcc -std=gnu99 -g -O2 -pthread -D_REENTRANT -D_GNU_SOURCE -I. -I/opt/httpd-2.4.2/os/unix -I/opt/httpd-2.4.2/include -I/opt/httpd-2.4.2/srclib/apr/include -I/opt/httpd-2.4.2/srclib/apr-util/include -I/opt/httpd-2.4.2/srclib/apr-util/xml/expat/lib -I/opt/httpd-2.4.2/modules/aaa -I/opt/httpd-2.4.2/modules/cache -I/opt/httpd-2.4.2/modules/core -I/opt/httpd-2.4.2/modules/database -I/opt/httpd-2.4.2/modules/filters -I/opt/httpd-2.4.2/modules/ldap -I/opt/httpd-2.4.2/modules/loggers -I/opt/httpd-2.4.2/modules/lua -I/opt/httpd-2.4.2/modules/proxy -I/opt/httpd-2.4.2/modules/session -I/opt/httpd-2.4.2/modules/ssl -I/opt/httpd-2.4.2/modules/test -I/opt/httpd-2.4.2/server -I/opt/httpd-2.4.2/modules/arch/unix -I/opt/httpd-2.4.2/modules/dav/main -I/opt/httpd-2.4.2/modules/generators -I/opt/httpd-2.4.2/modules/mappers -prefer-pic -c mod_rewrite.c && touch mod_rewrite.slo
/opt/httpd-2.4.2/srclib/apr/libtool --silent --mode=link gcc -std=gnu99 -g -O2 -pthread -o mod_rewrite.la -rpath /usr/local/httpd/modules -module -avoid-version mod_rewrite.lo
make[4]: 离开目录“/opt/httpd-2.4.2/modules/mappers”
make[3]: 离开目录“/opt/httpd-2.4.2/modules/mappers”
make[2]: 离开目录“/opt/httpd-2.4.2/modules”
make[2]: 进入目录“/opt/httpd-2.4.2/support”
make[2]: 离开目录“/opt/httpd-2.4.2/support”
make[1]: 离开目录“/opt/httpd-2.4.2”
中间可能会出现一些报错问题:环境包问题,配置格式问题,功能性方面问题(软件版本,是否支持功能),这些就需要仔细排查,缺什么补什么
5:make安装
代码语言:javascript复制make install 命令
[root@localhost httpd-2.4.2]# make install '安装'
Installing icons
mkdir /usr/local/httpd/icons
mkdir /usr/local/httpd/logs
Installing CGIs
mkdir /usr/local/httpd/cgi-bin
Installing header files
Installing build system files
Installing man pages and online manual
mkdir /usr/local/httpd/man
mkdir /usr/local/httpd/man/man1
mkdir /usr/local/httpd/man/man8
mkdir /usr/local/httpd/manual
make[1]: 离开目录“/opt/httpd-2.4.2”
配置httpd的conf属性
代码语言:javascript复制[root@localhost httpd-2.4.2]# cd /usr/local '进入到安装路径'
[root@localhost local]# ls
bin etc games httpd include lib lib64 libexec sbin share src
[root@localhost local]# cd httpd/
[root@localhost httpd]# ls
bin cgi-bin error icons lib man modules
build conf htdocs include logs manual
[root@localhost httpd]# cd conf/
[root@localhost conf]# ls
extra httpd.conf magic mime.types original
安装完成后优化,即测试、应用维护软件 1:找到服务配置文件,修改功能 conf配置文件
代码语言:javascript复制[root@localhost conf]# vim httpd.conf '配置httpd。conf'
:set nu '显示行数'
/Listen ’查找Listen‘
46 # directive.
47 #
48 # Change this to Listen on specific IP addresses as shown below to
49 # prevent Apache from glomming onto all bound IP addresses.
50 #
51 #Listen 12.34.56.78:80
52 Listen 80
53
54 #
55 # Dynamic Shared Object (DSO) Support
56 #
修改IP地址(在这里每一行的前面若是有#键,则代表是注释行,不发挥功能,若要发挥功能,则要取消注释#键)
代码语言:javascript复制# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
Listen 192.168.139.147:80 '去掉前面#号键,后面加端口号'
#Listen 80 '开启前面#号键'
#
# Dynamic Shared Object (DSO) Support
搜索Server
代码语言:javascript复制# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80 '修改网址'
#
# Deny access to the entirety of your server's filesystem. You must
代码语言:javascript复制# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName www.kgc.com:80 '关掉前面#号键'
#
# Deny access to the entirety of your server's filesystem. You must
:wq '保存退出'
查看对应80端口是否启用
关闭防火墙
代码语言:javascript复制[root@localhost bin]# ./apachectl start '开启apachctl'
[root@localhost bin]# netstat -ntap |grep 80
tcp 0 0 192.168.139.147:80 0.0.0.0:* LISTEN 73721/httpd
[root@localhost bin]# systemctl stop firewalld.service '关闭防火墙'
[root@localhost bin]# setenforce 0
[root@localhost bin]# cd ..
[root@localhost httpd]# ls
bin cgi-bin error icons lib man modules
build conf htdocs include logs manual
htdocs 网页目录,修改首页index配置
代码语言:javascript复制[root@localhost httpd]# cd htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# vim index.html
vim index.html
代码语言:javascript复制<html><body><h1>this is test 咸蛋超人</h1></body></html>
~
~
~
~
~
打开之前输入的ip地址