Apache 2.4.68 编译安装与配置

Apache 是全球使用排名第一的 Web 服务器软件,具备极强的跨平台兼容性,可运行在几乎所有主流计算机平台,凭借出色的稳定性、安全性与高性能,成为目前最流行的 Web 服务端软件之一。本文基于 CentOS 系统,采用源码编译方式安装当前最新稳定版 Apache 2.4.68,适配系统新版依赖特性,可直接用于生产环境部署。

1、首先安装 EPEL 扩展源及全套编译、功能依赖库。

[root@localhost ~]# dnf install -y epel-release
[root@localhost ~]# dnf install -y gcc gcc-c++ make cmake libtool autoconf automake zlib-devel pcre2-devel openssl-devel libxml2-devel expat-devel perl-devel
Last metadata expiration check: 2:50:26 ago on Wed 02 Sep 2026 01:46:02 PM CST.
Package gcc-14.4.1-3.el10.x86_64 is already installed.
Package gcc-c++-14.4.1-3.el10.x86_64 is already installed.
Package make-1:4.4.1-9.el10.x86_64 is already installed.
Package cmake-3.31.8-1.el10.x86_64 is already installed.
Package libtool-2.4.7-14.el10.x86_64 is already installed.
Package autoconf-2.71-13.el10.noarch is already installed.
Package automake-1.16.5-20.el10.noarch is already installed.
Package zlib-ng-compat-devel-2.2.3-3.el10.x86_64 is already installed.
Package pcre2-devel-10.44-1.el10.3.x86_64 is already installed.
Package openssl-devel-1:3.5.8-1.el10.x86_64 is already installed.
Package libxml2-devel-2.12.5-15.el10.x86_64 is already installed.
Package expat-devel-2.7.3-2.el10.x86_64 is already installed.
Package perl-devel-4:5.40.2-514.el10.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

2、APR(Apache Portable Runtime)是 Apache 必备的底层支持接口库,主要为上层应用提供跨操作系统的统一运行接口,屏蔽不同系统的底层差异,保障 Apache 跨平台稳定运行,Apache 2.4+ 版本需独立编译安装。

[root@localhost ~]# wget https://archive.apache.org/dist/apr/apr-1.7.5.tar.gz
[root@localhost ~]# tar -xzvf apr-1.7.5.tar.gz
[root@localhost ~]# cd apr-1.7.5/
[root@localhost ~]#
[root@localhost apr-1.7.5]# CC="gcc -m64" ./configure --prefix=/usr/local/apr
[root@localhost apr-1.7.5]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.7.5]# make && make install

3、APR-Util 是基于 APR 的拓展工具库,包含加密校验、存储管理、数据解析等与 Apache 深度绑定的核心组件,是 Apache 服务正常运行、实现加密、重写等功能的必要依赖。

[root@localhost ~]# wget https://archive.apache.org/dist/apr/apr-util-1.6.3.tar.gz
[root@localhost ~]# tar -xzvf apr-util-1.6.3.tar.gz
[root@localhost ~]# cd apr-util-1.6.3/
[root@localhost apr-util-1.6.3]#
[root@localhost apr-util-1.6.3]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.3]# make && make install

4、本次安装 Apache 最新稳定版 2.4.68,适配 CentOS Stream 10 的 pcre2、OpenSSL3.0 新版环境,开启 SSL、伪静态、压缩、缓存等生产必备模块,采用高性能 event 运行模型。

[root@localhost ~]# wget https://archive.apache.org/dist/httpd/httpd-2.4.68.tar.gz
[root@localhost ~]# tar -xzvf httpd-2.4.68.tar.gz

[root@localhost ~]# cd httpd-2.4.68/
[root@localhost httpd-2.4.68]# ./configure \
--prefix=/usr/local/apache2 \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-pcre2=/usr \
--with-zlib \
--with-ssl=/usr/include/openssl \
--enable-so \
--enable-ssl \
--enable-rewrite \
--enable-deflate \
--enable-expires \
--enable-headers \
--enable-mime-magic \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=event

[root@localhost ~]# make -j$(nproc)
[root@localhost ~]# make install

5、为保障服务安全,创建无登录权限的专用用户运行 Apache 进程,禁止使用 root 账户运行服务,降低安全风险。

[root@localhost httpd-2.4.68]# useradd -M -s /sbin/nologin apache
[root@localhost httpd-2.4.68]# chown -R apache:apache /usr/local/apache2

6、编辑主配置文件,指定运行用户、组及服务监听地址,解决服务启动告警,适配全网段访问需求。

[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf
User apache
Group apache
ServerName 0.0.0.0:80

7、为 Apache 创建 systemd 服务单元文件,实现系统统一管理,支持启动、停止、重载、开机自启,适配 CentOS 系统服务规范。

[root@localhost ~]# vim /usr/lib/systemd/system/httpd.service

[Unit]
Description=Apache HTTP Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/apache2/bin/apachectl start
ExecStop=/usr/local/apache2/bin/apachectl stop
ExecReload=/usr/local/apache2/bin/apachectl graceful
[Install]
WantedBy=multi-user.target

8、启动服务并设置开机自启。

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl status httpd
● httpd.service - Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: disabled)
Active: active (running) since Wed 2026-09-02 17:17:45 CST; 18s ago
Invocation: 57c113ca09b74d488dda39683113fca4
Process: 52825 ExecStart=/usr/local/apache2/bin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 52828 (httpd)
Tasks: 82 (limit: 10320)
Memory: 9.6M (peak: 10M)
CPU: 29ms
CGroup: /system.slice/httpd.service
├─52828 /usr/local/apache2/bin/httpd -k start
├─52830 /usr/local/apache2/bin/httpd -k start
├─52831 /usr/local/apache2/bin/httpd -k start
└─52832 /usr/local/apache2/bin/httpd -k start

Sep 02 17:17:44 localhost systemd[1]: Starting httpd.service - Apache HTTP Server...
Sep 02 17:17:45 localhost systemd[1]: Started httpd.service - Apache HTTP Server.

9、将 Apache 命令目录加入系统环境变量,实现全局任意目录调用 httpd、apachectl 命令。

[root@localhost ~]# echo 'export PATH=$PATH:/usr/local/apache2/bin' >> /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]#
[root@localhost ~]# httpd -v
Server version: Apache/2.4.68 (Unix)
Server built: Sep 2 2026 17:09:19
[root@localhost ~]#
[root@localhost ~]# apachectl -v
Server version: Apache/2.4.68 (Unix)
Server built: Sep 2 2026 17:09:19