Apache源码一键编译安装脚本:自动检查并安装gcc、make、pcre-devel等依赖,下载解压2.4+源码,将apr/apr-util置入srclib,校验完整性,configure启用so/rewrite/ssl/cgi/mpm-event,编译安装至/usr/local/httpd,配置systemd服务并启用。

写一个 Apache 源码一键编译安装脚本,核心是把手动执行的步骤(下载、解压、依赖安装、配置、编译、安装、服务初始化)全部自动化,并加入基础判断和错误防护。不需要追求功能堆砌,重点是稳定、可读、易调试。
明确依赖和前置条件
脚本运行前需确保系统具备基本编译能力,脚本本身应主动检查并安装必要工具:
- 必须安装 gcc、make、pcre-devel、expat-devel、openssl-devel、perl、wget
- 关闭或放行防火墙(如 firewalld),SELinux 建议设为 permissive 或 disabled(脚本中可自动临时调整)
- 推荐使用 CentOS/RHEL 7+ 或 Rocky/AlmaLinux 系统;Ubuntu/Debian 需替换 yum 为 apt 并调整包名
结构化组织源码与路径
避免硬编码路径,用变量统一管理,提升可维护性:
Apache 2.4.62 官方 tar.gz 源码包是 Linux 及类 Unix 系统构建 Web 服务器的核心基础。通过源码编译安装,开发者能够灵活定制模块、优化性能并精准控制安装路径,满足多样化的业务需求。
- 定义 src_dir=/usr/local/src 存放源码,install_dir=/usr/local/httpd 为安装目标
- Apache 2.4+ 必须依赖 apr 和 apr-util,建议将它们直接放入 httpd 源码的 srclib/ 目录下(这是官方推荐方式,省去 --with-apr 参数)
- 下载后立即校验 tar 包完整性(如用
wget -c+tar -tf尝试列出内容)
关键编译参数与安全适配
configure 步骤决定功能是否可用,常见实用组合如下:
-
--prefix=$install_dir:指定安装根目录 -
--enable-so --enable-rewrite --enable-ssl --enable-cgi:启用动态模块、重写、HTTPS、CGI 等常用功能 -
--with-pcre --with-zlib:显式启用正则和压缩支持(部分系统需提前装 pcre-devel/zlib-devel) -
--enable-mpms-shared=all --with-mpm=event:启用多 MPM 模块并默认 event(高并发场景更优) - 编译前导出
LD_LIBRARY_PATH(若 apr/apr-util 非标准路径)或使用--with-apr/--with-apr-util显式指向
服务注册与启动封装
让 httpd 支持 systemctl 管理,需两步:
- 拷贝
$install_dir/bin/apachectl到/etc/init.d/httpd,并在开头添加 chkconfig 注释行(如# chkconfig: 35 85 21) - 创建 systemd unit 文件
/usr/lib/systemd/system/httpd.service,内容包含Type=forking、ExecStart=$install_dir/bin/apachectl start等关键字段 - 执行
systemctl daemon-reload && systemctl enable httpd完成注册
不复杂但容易忽略:每次 configure 前加 cd 切到对应源码目录,每个关键命令后用 || { echo "xxx failed"; exit 1; } 捕获失败,避免静默跳过错误。

















