1、Apache简介
■ Apache起源
● 源于A Patchy Server,著名的开源Web服务软件
● 1995年时,发布Apache服务程序的1 .0版本
● 由Apache软件基金会(ASF) 负责维护
● 最新的名称为“Apache HTTP Server”
● 官方站点: http://httpd.apache.org/
■ 主要特点
● 开放源代码、跨平台应用
● 支持多种网页编程语言
● 模块化设计、运行稳定、良好的安全性
2、编译安装httpd服务器
■ 编译安装的优点
● 具有较大的自由度,功能可定制
● 可及时获得最新的软件版本
● 普遍适用于大多数Linux版本,便于移植使用
■ 获得Apache服务器的源码包
● 参考地址: http://httpd.apache.org/download.cgi
■ Apache的依赖软件包
● apr:为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。早期apache为了能够处理各种不同的系统平台的时候调用不同的处理函数,现在apache将通用函数独立出来发展成apr项目。
● apr-util:完整的apr开发包包含三个: apr、 apr-util、 apr-iconv。 都是为了完成一个功能就是为上层应用提供运行库,只不过和apr提供的数据结果和接口库不一样而已。
● pcre- -devel:为了支持正则表达式
● expat-devel:是一个C语言开发的、用来解析XML文档的开发库,主要作用是搜索它的文档,识别文件指定的位置,调用该部分相应的处理程序,将文件输送到解析器,将文件分割成多个片断,分段装到内存中。
● perl:内部集成了正则表达式和第三方代码库CPAN。和前面的pcre-devel支持的正则表达式不一样
■ Apache配置的选项
● --prefix: 指定apache程序安装到哪个目录下
● --enable-so:启用动态加载模块支持,使httpd具备进一 步扩展功能的能力
● --enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移
● --enable-charset-lite: 启用字符集支持,以便支持使用字符集编码的网页
● --enable-cgi:启用CGI脚本程序支持,便于扩展网站的应用访问能力
■ Apache主要子目录的用途
/usr/ local/httpd/bin: 存放httpd服务的各种可执行程序文件
/usr/local/httpd/conf: 存放httpd 服务的各种配置文件
/usr/local/httpd/htdocs: 存放网页文档,包括默认首页文件index. html
/usr/local/httpd/logs: 存放httpd 服务的日志文件
/usr/ local/httpd/modules: 存放httpd 服务的各种模块文件
/usr/ local/httpd/cgi-bin: 存放各种CGI程序文件
■ 优化Apache执行路径
● 创建链接
● 将apache程序的路径加入PATH环境变量中
■ 查看Apache程序的版本
httpd-v
3.实验需求
实验需求
1.一台CentOS7.9
2.软件包httpd-2.4.54.tar.gz如下:
Apache安装包如下:
链接:https://pan.baidu.com/s/1UdR78cyYCtp0vp5Ogv-eig
提取码:xksl
4.实验部署
1.上传安装包 httpd-2.4.54.tar.gz
2.进行一个依赖包安装
yum -y install apr* pcre* openssl*
3.解压包
tar zxf httpd-2.4.54.tar.gz && cd httpd-2.4.54/ #解压完之后切换到httpd-2.4.54/目录下
4.编译安装
./configure --prefix=/usr/local/httpd ##编译安装的路径
执行完之后是如下图就没有问题
make && make install
执行结果如下
5.编辑网页内容
cd /usr/local/httpd/htdocs ##进入目录下
cat > index.html << EOF
<html><body><h1>插入你需要的内容</h1></body></html>
<meta charset="UTF-8">
EOF
6.开启Apache服务
echo "ServerName localhost:80" >> /usr/local/httpd/conf/httpd.conf ##编辑配置文件
cd /usr/local/httpd/bin ##切换到如下目录开启Apache服务
./apachectl start ##开启服务
实验部署完成之后,一定要记得关闭防火墙
systemctl stop firewalld && systemctl disable firewalld && echo "防火墙已经关闭"
sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config && echo "关闭selinux"
测试实验结果如下:
最后实验也就完成了,喜欢的点赞加关注喽(●'◡'●) !!!