Linux之WEB服务器Apache httpd源码编译安装


aihuafeng66t
克里斯蒂亚诺诺 2024-01-05 22:10:06 51434 赞同 0 反对 0
分类: 资源
Linux之WEB服务器Apache httpd源码编译安装

一、Apache httpd简介
  Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用。Apache曾经是世界使用排名第一的Web服务器软件(2019年4月后nginx第一)。它可以运行在几乎所有广泛使用的计算机平台上。Apache 源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。当前最新稳定版是2.4.52,博文实验环境:

操作系统:centos 7.6
Apache httpd版本:2.4.52
————————————————

二、安装步骤
1、下载源码软件包
[root@s145 local]# wget --no-check-certificate https://dlcdn.apache.org//httpd/httpd-2.4.52.tar.gz

2、校验SHA512值
校验SHA512或者MD5值,主要是验证文件的完整性,尤其是从非官方渠道下载的软件包,校验MD5值是核验文件是否被篡改的重要手段。
[root@s145 local]# sha512sum httpd-2.4.52.tar.gz
b9012096d6658f7d34a3c655eac31b39ffd439c11de6f3e6e9f309d55f4186a4fb26134eb97522e416ae8ca10ed008a14e96fa01a3e3105d9e547f72e2dc3bc2 httpd-2.4.52.tar.gz


3、解压软件包
[root@s145 local]# tar -zxvf httpd-2.4.52.tar.gz

4、下载APR组件
[root@s145 local]# wget --no-check-certificate https://dlcdn.apache.org//apr/apr-1.7.0.tar.gz
[root@s145 local]# wget --no-check-certificate https://dlcdn.apache.org//apr/apr-util-1.6.1.tar.gz

5、解压APR组件包并拷贝到apache目录下
[root@s145 local]# tar -zxvf apr-1.7.0.tar.gz
[root@s145 local]# tar -zxvf apr-util-1.6.1.tar.gz
[root@s145 local]# cp -rf apr-1.7.0 httpd-2.4.52/srclib/apr/
[root@s145 local]# cp -rf apr-util-1.6.1 httpd-2.4.52/srclib/apr-util/

6、安装gcc
[root@s145 local]# yum install -y gcc*

7、安装pcre-devel组件
[root@s145 local]# yum -y install pcre-devel

8、安装xml解释器
[root@s145 local]# yum -y install expat-devel

9、编译准备软件包
[root@s145 httpd-2.4.52]# ./configure

configure: summary of build options:

Server Version: 2.4.52
Install prefix: /usr/local/apache2
C compiler: gcc -std=gnu11
CFLAGS: -g -O2 -pthread
CPPFLAGS: -DLINUX -D_REENTRANT -D_GNU_SOURCE
LDFLAGS:
LIBS:
C preprocessor: gcc -E

10、编译
[root@s145 httpd-2.4.52]# make

make[1]: Leaving directory `/usr/local/httpd-2.4.52’

11、安装
[root@s145 httpd-2.4.52]# make install

Installing man pages and online manual
mkdir /usr/local/apache2/man
mkdir /usr/local/apache2/man/man1
mkdir /usr/local/apache2/man/man8
mkdir /usr/local/apache2/manual
make[1]: Leaving directory `/usr/local/httpd-2.4.52’

12、查看Apache版本
apache 2.4.52版本源码编译安装默认安装路径/usr/local/apache2
[root@s145 apache2]# ./bin/httpd -V
Server version: Apache/2.4.52 (Unix)
Server built: Jan 25 2022 17:33:19
Server’s Module Magic Number: 20120211:121
Server loaded: APR 1.7.0, APR-UTIL 1.6.1
Compiled using: APR 1.7.0, APR-UTIL 1.6.1
Architecture: 64-bit
Server MPM: event
threaded: yes (fixed thread count)
forked: yes (variable process count)

13、修改配置conf/httpd.conf配置文件
[root@s145 apache2]# vim conf/httpd.conf
#搜索ServerName,插入如下内容,可以使用IP或者域名,如果有域名建议使用域名,使用域名的情况下需要配置DNS解析。
ServerName 192.168.0.145:80

14、启动Apache
[root@s145 apache2]# ./bin/apachectl start
[root@s145 apache2]# netstat -tnpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3327/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3524/master
tcp6 0 0 :::80 ::😗 LISTEN 15340/httpd
tcp6 0 0 :::22 ::😗 LISTEN 3327/sshd
tcp6 0 0 ::1:25 ::😗 LISTEN 3524/master
————————————————

2、常用配置参数介绍
  此博文参数介绍已apache httpd 2.4.52版本为例,如果不通请核对版本。此处只对几个主要的参数进行介绍,刚详细参数后续博文介绍。

ServerRoot “/usr/local/apache2” #服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它配置文件的相对路径即基于此目录。默认为安装目录,不需更改。
Listen 80 #指定服务器监听的IP和端口。默认情况下Apache会在所有IP地址上监听。Listen是Apache2.0以后版本必须设置的指令,如果在配置文件中找不到这个指令,服务器将无法启动。默认为:Listen 80。
User daemon # 设置实际提供服务的子进程的用户。为了使用这个指令,服务器必须以root身份启动和初始化。如果你以非root身份启动服务器,子进程将不能够切换至非特权用户,并继续以启动服务器的原始用户身份运行。如果确实以root用户启动了服务器,那么父进程将仍然以root身份运行。用于运行子进程的用户必须是一个没有特权的用户,这样才能保证子进程无权访问那些不想为外界所知的文件,同样的,该用户亦需没有执行那些不应当被外界执行的程序的权限。Group指令同理,默认都是daemon。
ServerAdmin you@example.com #设置在所有返回给客户端的错误信息中包含的管理员邮件地址。
ServerName #设置服务器用于辨识自己的主机名和端口号。当没有指定ServerName时,服务器会尝试对IP地址进行反向查询来推断主机名。如果在ServerName中没有指定端口号,服务器会使用接受请求的那个端口。 为了加强可靠性和可预测性,建议使用ServerName显式的指定一个主机名和端口号。
DocumentRoot “/usr/local/apache2/htdocs” #设置Web文档根目录,默认 “/usr/local/apache2/htdocs”,运行后看到的“It works!”就是这个这个目录下的index.html文件的内容。
四、QA
1、编译准备时报错APR not found.
报错信息:configure: error: APR not found. Please read the documentation.
报错原因:缺少apr组件
解决方案:下载apr组件并拷贝到Apache httpd目录下srclib/apr/,详细见安装步骤5。
2、编译准备时报错APR-util not found.
报错信息:configure: error: APR-util not found. Please read the documentation.
报错原因:缺少apr-util组件
解决方案:下载apr-util组件并拷贝到Apache httpd目录下srclib/apr-util/,详细见安装步骤5。
3、编译准备时报错pcre-config for libpcre not found
报错信息:configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
报错原因:没有安装 Apache 必需组件 PCRE 或没有加–with-pcre 选项指定PCRE 的安装位置。
解决方案: yum -y install pcre-devel
4、编译的时候报错xml/apr_xml.c:35:19: fatal error:
报错信息:xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
报错原因:缺少xml 的解析器
解决方案:yum -y install expat-devel
————————————————

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
克里斯蒂亚诺诺L1
粉丝 0 资源 831 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  127
统信桌面专业版【全盘安装UOS系统】介绍  122
银河麒麟桌面操作系统安装佳能打印机驱动方法  114
银河麒麟桌面操作系统 V10-SP1用户密码修改  105
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益209.03元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!