Apache 源码包2.4.41版本 | 学习笔记

简介: 快速学习 Apache 源码包2.4.41版本

开发者学堂课程【阿里云上搭建 LAMP 环境实战:Apache 源码包2.4.41版本】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/663/detail/11087


Apache 源码包2.4.41版本


内容介绍

一、安装 Apache

1.安装依赖包

2.安装 apr

3.安装 expat 库

4.安装 pcre

5.安装 zlib

6.安装 mod_ssl

7.httpd 软件安装

8、启动 Apache 测试

本章进行 Apache 的安装,各个软件安装顺序没有规定,建议先安装Apache

 

一、安装 Apache

1. 安装依赖包

先在 Xshell 命令框中输入以下命令,解压安装 Apache 需要的所有软件和依赖包到当前目录下,即/root/lamp/下

# tar -xf httpd-2.4.41.tar.gz

# tar-xf apr-1.6.5.tar·gz

(apr和apr-util是apache中分出来的包)

# tar-xf apr-util-1.6.1.tar.gz(工具包)

# tar-xf pcre-8.43.tar·gz(正则需要的包)

# tar -xf zlib-1.2.11.tar.gz(解压缩需要的包)

在此按照上述顺序依次解压即可,全部解压完毕输入命令#ls 即可看到各个依赖被添加成功。

2. 安装 apr

源码包2.4.*版本中默认没有集成 apr 的依赖包,所以需要提前解决依赖问题。

根据语句可以知晓,仅需要把 apr 放在 srclib 目录下去除版本号即可。apr-util 也是一样,具体操作将以下两条指令输入命令框即可。

#cp -a/root/lamp/apr-1.6.5/root/lamp/httpd-2.4.41/srclib/apr

#cp-a/root/lamp/apr-util-1.6.1/root/lamp/httpd-2.4.41/5rclib/apr-util

3.安装 expat 库

同时如果缺少 expat 库,否则在编译 apr.时会出错 apr-util.,致命错误:expat.h:没有那个文件或目录。所以接下来输入以下指令来安装expat库,不需要源码安装,yum安装即可。

#yum install -expat-devel

解压 apr 和 ap-util,复制整个目录并取消目录上的版本号到指定位置,./configure 时会检测。

4.安装 pcre

因为 Apache 默认需要依赖 pcre,软件,但由于 Apache 软件版本较高,则系统预安装的 pcre 无法使用,所以安装需要人为手动安装适合版本,它的安装不需要指定位置,将以下四行指令敲入即可。

# cd /root/lamp/pcre-8.43

# ./configure

# make

# make install

之后输入# make

5.安装 zlib

安装zlib的时候也不需要指定目录,只需首先使用#cd..回到上一目录,来到 cd /root/lamp/zlib-1.2.11目录下,依次输入安装配置的指令即可。

# cd /root/lamp/zlib-1.2.11

#./configure

# make

# make install

6.安装 mod_ssl

mod_ssl 不需要源码安装直接使用 yum 源安装即可,同时 Apache 的加密传输模块需要安装此软件产生加密有关的操作。

# yum -y install openssl-devel

7. httpd 软件安装

接下来就正式安装Apache的各种软件,首先输入#cd ..进入到 Apache 的目录下,输入:#cd httpd-2.4.41,寻找目录时候,可以输入:#ls 查看当前目录下是否是 Apache 所在目录。

配置 apache 配置文件的目录,包含 apr 之前拷贝的目录,包括 so 和一些有关重写的模块,指定 ssl 等等,为了防止敲错,直接将以下前9条命令粘贴到指令框即可。(注意:粘贴时要注意所属目录是否匹配)

# cd/lamp/httpd-2.4.41

#./configure \

--prefix=/usr/local/apache2 \

--sysconfdir=/usr/local/apache2/etc\(apahce配置文件的目录)

--with-included-apr \

--enable-so  \

--enable-deflate=shared \

--enable-expires=shared \

--enable-rewrite=shared \

--enable-ss\  

#make(等待前面的语句执行之后,输入 make 编译)

#make install(编译完成后再输入 make install 安装)

--enable-ss选项是为了后期实现 https 提前设置的参数。

在安装完成后可以输入指令:#echo $?查看是否有错误,为0则表示成功。

8、启动 Apache 测试

① Apahce 是一个服务器需要启动80端口,

所以输入指令:#netstat -tnl 可以查看端口的开启情况。可以看到此时只开启了22端口。

image.png

② 输入命令:#cd user/local/apache2/和#ls查看其目录结构。

其中 bin 目录是 apache 一些关于启动、关闭、调优的命令。

如:启动使用的命令为:#./apachectl -m;执行命令为:#./ap

achectl -H;查看 apache 支持的模块:# /user/local/apache2/bin/ap。同时如果使用 rpm 包安装或者系统其他的安装自带的服务,都会自动将其启动到服务中去。

在此也可以一块一块的将服务去制作,当然也可以使用环境变量,在 Apache 的 bin目录就可以直接使用命令,最后在源码包安装时,知道目录也可以达到这样的效果。

③ 输入:# /user/local/apache2/bin/apachectl start 后开启

Apache 失败,报错显示没有 ServerName 不知该如何访问。

要解决此问题,首先找到 Apache 位于 etc 目录下的 httpd.config 的主配置文件,依次输入:

#cd ..

#ls

#cd etc/

#ls

同时如果采用 rpm 包的安装方式,Apache 就会将所有内容放到主配置文件中,而用源码安装,因为 Apache 的配置文件十分长所以他会按照功能分成许多个小的配置文件。

输入:#cd extra/#ls

就可以看到(如图)

image.png

④ 解决80端口没有被打开的问题

输入命令:

#vi httpd.conf

?ServerName

找到#ServerName www.example.com:80语句将其80端口给打开,变为:ServerName localhost:80,输入:wq!,此时它的域名还没有绑定指定本机的localhost即可.最后重新再将apache2的bin目录下的Apache打开:# /user/local/apache2/bin/apachectl start,在输入:#netstal -tnl开启就可以看到80端口运行成功。

image.png

如果想要停止80端口只需要输入指令:# /user/local/apache2/bin/apachectl stop即可。

l 主要步骤:

#/user/local/apache2/bin/apachectl start

# pS aux I grep httpd

使用进程查看命令确认 Apache 是否启动,是否产生进程

# netstat -tlun

使用网络进程查看命令确认 Apache 是否启动,是否开启了80鉴听端口

注意事项: Centos 7操作系统上 Apache 默认监听了 lpv6 地址的 80端口,没有监听ipv4 的地址,所以需要修改下配置文件使其监听。

Listen 0.0.0.0:80

报错提示:若启动时提示/usr/local/apache2/modules/mod_deflate.so无权限,可关闭SELinux解决,类似此类.so文件不能载入或没有权限的问题,都是SELinux.问题,MySQL 和 Apache 都可能有类似问题。

警告提示:发现启动服务提示。AH00558: httpd:Could not reliably determine the server's fully

解决办法:打开主配置文件 httpd.conf 搜索 ServerName

(约在200行左右)

改为 ServerName localhost:80(并且去掉前面的#注释)

验证:通过浏览器输入地址访问: http://服务器ip,若显示“lt works”即表明Apache 正常工作。

发布实例

等待以上操作都完成之后,我们查看是否能够发布实例,复制实例的公网 ip:47.92.200.135,我们要查看公网 ip 只能通过 Apache 的控制台去访问。

image.png

在地址栏输入47.92.200.135会默认使用80端口和 http,看到成功访问之后,我们就可以发布静态网站了,发布网站的目录在 Apache 的根目录下的 htdocs 目录下,同时这个目录可以通过修改 Apache 的配置文件来改变。

输入指令如下:

#cd ..(返回上一目录)

#ls

#pwd

#cd htdocs/

#clear(清屏)

l 编写 test.html

同时在此目录下还具有一个 index.html,输入指令#vi index.html即可查看。同时也可以输指令:#vi test.html 来编写页面,如:在 test.html 添加内容:

<meta charset=“utf-8”>

这是我们的第一个页面

最后输入:wq!执行,访问 apache 下的 test.html 即可访问我们编写的页面。

image.png

l 编写 test.php

先输入命令行:#vi test.php

在其中设置 test.php 文件的内容,编写一个测试的循环,代码如下:

for($i=0;$i<10;$i++){

echo”=={$i}
\n”;

}

最后输入:wq!执行后再在 Apache 中访问可以看到此时输出的并非结果,而是源代码,说明 Apache 并没有解析 php 的能力需要先给 php 解析器去解析之后再把结果返回 Apache 服务器去展示。

以上就是所有安装 Apache 需要的软件,我们需要记忆的有 Apache 启动、关闭和写网页的页面在哪,端口是否开启,怎么请求访问等等。

相关文章
|
2月前
|
缓存 安全 Java
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
|
2月前
|
运维 Linux Apache
LAMP架构调优(一)——隐藏Apache版本信息
LAMP架构调优(一)——隐藏Apache版本信息
16 1
|
2月前
|
SQL 存储 JSON
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
亲爱的社区小伙伴们,Apache Doris 2.1.0 版本已于 2024 年 3 月 8 日正式发布,新版本开箱盲测性能大幅优化,在复杂查询性能方面提升100%,新增Arrow Flight接口加速数据读取千倍,支持半结构化数据类型与分析函数。异步多表物化视图优化查询并助力仓库分层建模。引入自增列、自动分区等存储优化,提升实时写入效率。Workload Group 资源隔离强化及运行时监控功能升级,保障多负载场景下的稳定性。新版本已经上线,欢迎大家下载使用!
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
|
5月前
|
消息中间件 Apache RocketMQ
电子好书发您分享《Apache RocketMQ 源码解析》
电子好书发您分享《Apache RocketMQ 源码解析》
34 1
|
13天前
|
Kubernetes 关系型数据库 Apache
Apache Doris 2.1.2 版本正式发布!
Apache Doris 2.1.2 版本正式发布!该版本提交了若干改进项以及问题修复,进一步提升了系统的性能及稳定性,欢迎大家下载体验!
|
23天前
|
分布式计算 Java Apache
|
2月前
|
存储 缓存 负载均衡
【Apache ShenYu源码】如何实现负载均衡模块设计
整个模块为ShenYu提供了什么功能。我们可以看下上文我们提到的工厂对象。/***/核心方法很清晰,我们传入Upsteam列表,通过这个模块的负载均衡算法,负载均衡地返回其中一个对象。这也就是这个模块提供的功能。
23 1
|
2月前
|
Java API Apache
【Apache ShenYu源码】看看贡献者如何实现支持提醒通知设计
在阅读中,还发现了有个html文件忘记加了开源协议,我们提下PR修复下,又收获了一次开源贡献!!PR提交戳这。
26 1
【Apache ShenYu源码】看看贡献者如何实现支持提醒通知设计
|
2月前
|
SQL 分布式计算 Apache
Apache Hudi 0.12.0版本重磅发布!
Apache Hudi 0.12.0版本重磅发布!
62 2
|
2月前
|
分布式计算 Apache Spark
Apache Hudi 0.13.0版本重磅发布!
Apache Hudi 0.13.0版本重磅发布!
70 2

推荐镜像

更多