温馨提示×

如何编译ubuntu apache2

小樊
32
2026-08-01 05:52:39
栏目: 智能运维

在 Ubuntu 上编译(从源码构建)Apache HTTP Server(apache2)通常用于需要自定义模块、特殊版本或深度定制的场景。下面给你一套从源码编译 Apache 2.4 的完整流程,适用于 Ubuntu 20.04 / 22.04 / 24.04。


一、准备编译环境

1. 安装编译依赖

sudo apt update
sudo apt install -y \
  build-essential \
  libpcre3 libpcre3-dev \
  zlib1g zlib1g-dev \
  libssl-dev \
  libexpat1-dev \
  wget

二、下载 Apache 源码

1. 下载 Apache HTTP Server

cd /usr/local/src
sudo wget https://downloads.apache.org/httpd/httpd-2.4.58.tar.gz
sudo tar -xzf httpd-2.4.58.tar.gz
cd httpd-2.4.58

三、下载依赖(APR / APR-Util)

Apache 2.4 依赖 APRAPR-Util

cd /usr/local/src
wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz
wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz

tar -xzf apr-1.7.4.tar.gz
tar -xzf apr-util-1.6.3.tar.gz

mv apr-1.7.4 httpd-2.4.58/srclib/apr
mv apr-util-1.6.3 httpd-2.4.58/srclib/apr-util

四、配置编译参数(关键步骤)

cd /usr/local/src/httpd-2.4.58

./configure \
  --prefix=/usr/local/apache2 \
  --enable-so \
  --enable-ssl \
  --enable-rewrite \
  --with-included-apr \
  --with-mpm=prefork

常用参数说明

参数 作用
--prefix 安装目录
--enable-so 启用动态模块
--enable-ssl 启用 HTTPS
--enable-rewrite URL 重写
--with-mpm 多处理模块(prefork / worker / event)

五、编译并安装

make
sudo make install

安装完成后:

/usr/local/apache2/bin/httpd -v

六、启动 Apache

sudo /usr/local/apache2/bin/apachectl start

访问:

http://localhost

七、设置 systemd 服务(推荐)

创建服务文件:

sudo nano /etc/systemd/system/apache2.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
PIDFile=/usr/local/apache2/logs/httpd.pid
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动并设置开机自启:

sudo systemctl daemon-reload
sudo systemctl enable apache2
sudo systemctl start apache2

八、与 apt 安装的 Apache 区别

项目 apt 安装 源码编译
路径 /etc/apache2 /usr/local/apache2
升级 apt upgrade 手动重新编译
稳定性 可控但复杂
适合 生产环境 定制开发

九、常见问题

1️⃣ 端口被占用

sudo netstat -tlnp | grep 80
sudo apt remove apache2

2️⃣ 缺少 PCRE

sudo apt install libpcre3-dev

十、建议

生产环境:直接用 apt
开发 / 模块开发 / 特殊版本:源码编译

如果你需要:

  • 编译 指定模块
  • 编译 Apache + PHP
  • 编译 Apache + mod_wsgi / mod_security
  • 交叉编译 / ARM 平台

可以直接告诉我你的具体需求。

0