CentOS 7.6 源码安装并启动Apache服务
实验准备
- CentOS 7.6系统安装光盘
- Httpd安装压缩包httpd-2.4.25.tar.gz
实验思路
- 挂载系统镜像光盘
- 安装gcc、gcc-c++和make
- 源码安装httpd服务并进行简单配置
- 启动apache服务,验证可以访问网页
实验步骤
挂载光盘
首先要挂载系统的安装镜像盘,用于yum安装软件程序,如gcc,gcc-c++和make
连接到虚拟机之后就可以用mount挂载了,挂载完成之后查看一下是否挂载成功
mount /dev/cdrom /mnt #mount 源目录 目标目录
df -Th #查看文件系统,并显示类型
挂载完成之后在挂载目录下面就会出现一个“Packages”的目录,里面是各种rpm软件包
因为一个软件需要在linux上运行必须是二进制文件,所以如果是源码安装的话需要把它编译成二进制文件才能在linux上运行,需要2个步骤
- 使用gcc编译器将源码编译成目标文件
- 再使用gcc编译器将目标文件链接成二进制文件
安装gcc,gcc-c++,make
make命令:用它通过命令行来编译和安装很多开源的工具
当 make 命令第一次执行时,它扫描 Makefile 找到目标以及其依赖。如果这些依赖自身也是目标,继续为这些依赖扫描 Makefile 建立其依赖关系,然后编译它们
报错Errno 256:No more mirrors to try
发现虚拟机是仅主机模式,有可能无法联网,所以无法下载需要的软件包,这时我们需要设置yum本地源:把yum仓库的地址指定到本地地址,到yum配置目录下,将原来的文件全部备份一下
然后修改CentOS-Base.repo这个基础配置文件
把1-36行内容删除,多行删除(vi),:1,36d
做如下设置:
[centos]
name=CentOS #随便取一个好识别的名字
baseurl=file:///mnt #因为光盘挂载到/mnt下所以这里指定这个地址
gpgcheck=0 #从这个源下载的rpm包不进行校验
enabled=1 #表示启用这个源
yum clean all #清除yum缓存
yum makecache #建立yum缓存(必须,否则会报错)
然后用yum重新安装gcc、gcc-c++、make,显示都已安装
源码安装httpd
接着就可以源码安装httpd了
首先需要用Xftp(随便一个ftp工具)把httpd传到linux里,放到/opt下
然后解压到/opt下(一定要先拷贝再在linux里解压否则会报错权限错误)
进入解压完成后的目录,进行源码安装
./configure --prefix=/usr/local/apache
–prefix指的是配置安装目录,把安装的所有文件都指定安装在/usr/local/apache目录下,比较好维护,也便于卸载与移动
如果不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr /local/share
如果将来要删除这个程序,指定了prefix,就删掉这个目录就可以了
这里一直报错APR-util not found,所以从APR网站(http://apr.apache.org )上下载这两个tar包上传至/usr/local(APR和APR-util都要下载)
指定安装目录分别为/usr/local/apr 与/usr/local/apr-util
然后./configure的时候一定要加上–with-apr=/usr/local/apr 和–with-apr-util=/usr/local/apr-util
–with指的是安装本文件所依赖的库文件
这里还报错pcre-config not found,这时用yum重新装一下即可
没有报错之后就可以进行编译安装了,在httpd解压目录下make,没有报错继续make install
配置httpd
安装好以后对它进行配置,apache默认配置文件为httpd.conf
找到SeverName这一行,去掉前面的#号,开启80端口
启动httpd
最后启动apache服务
绝对路径下的启动方式如图:
查看80端口确定在监听状态
netstat命令:一般用来查看端口状态的
- -t 显示TCP协议的进程
- -p 显示进程名称
- -a 显示所有
- -n 使用IP地址显示
验证访问网页
安装lynx浏览器软件
lynx命令是纯文本模式的网页浏览器,不支持图形、音频、视频等多媒体信息
输入以下命令用文本浏览器打开测试网页
若显示“It works”则表示apache部署成功
这时我们需要在本机也能访问这个网址:
- 虚拟机网络模式改为NAT(做端口映射)
- 关闭linux防火墙
虚拟机改NAT如下图:
查看防火墙状态(一般默认开启)
firewwall-cmd --state
关闭防火墙:
systemctl stop firewalld.service
浏览器输入虚拟机ip即可访问,如图: