编译安装前的准备工作
在Linux系统中通过源码编译安装Apache,需要确保系统环境满足编译要求,并提前下载必要的依赖包和源码文件,建议使用一个纯净的Linux发行版环境,如CentOS或Ubuntu,以避免与其他软件包产生冲突。

系统依赖安装
编译Apache需要基础的编译工具和库文件,以CentOS系统为例,可通过以下命令安装必要依赖:
yum groupinstall "Development Tools" -y yum install wget openssl-devel pcre-devel expat-devel libtool -y
Development Tools包含了gcc、make等编译工具,openssl-devel提供SSL支持,pcre-devel用于正则表达式解析,expat-devel支持XML解析,libtool则是构建工具。
下载Apache源码
从Apache官方镜像站点下载最新稳定版源码,以2.4.57版本为例:
wget https://archive.apache.org/dist/httpd/httpd-2.4.57.tar.gz tar -zxvf httpd-2.4.57.tar.gz cd httpd-2.4.57
确保下载的源码包校验和正确,可通过sha256sum命令验证。
配置编译参数
编译安装的核心在于configure脚本的参数配置,合理的参数能确保Apache按需安装并优化性能。
基础配置参数
进入源码目录后,执行./configure并指定安装路径、功能模块等参数,以下为常用配置选项:
./configure \ --prefix=/usr/local/apache2 \ # 指定安装目录 --enable-so \ # 启用DSO动态加载模块 --enable-ssl \ # 启用SSL支持 --enable-deflate \ # 启用压缩模块 --enable-expires \ # 启用过期控制模块 --enable-rewrite \ # 启用URL重写模块 --with-mpm=event \ # 选择event工作模式(高性能) --with-included-apr # 使用捆绑的APR库(避免版本冲突)
参数说明:--prefix定义安装路径,所有文件将存放在此目录下;--enable-so允许动态加载模块,便于后续扩展;--enable-ssl支持HTTPS协议;--with-mpm=event选择event多路处理模块,适合高并发场景。
高级配置选项
若需自定义模块路径或添加第三方模块,可通过以下参数扩展:

--add-module=/path/to/module/mod_foo.c \ # 添加第三方模块 --with-zlib=/usr/local/zlib # 指定zlib库路径
配置完成后,可通过./configure --help查看所有可用参数。
编译与安装过程
配置完成后,执行编译和安装命令。
编译源码
使用make命令进行编译,根据系统性能可使用-j参数指定并行线程数,如make -j4:
make -j$(nproc) # nproc自动获取CPU核心数
编译过程可能持续几分钟,若出现错误,通常是由于依赖缺失或参数配置不当,需根据错误提示排查。
安装到系统
编译成功后,执行make install将文件安装到指定目录:
make install
安装完成后,/usr/local/apache2目录下会包含bin(可执行文件)、conf(配置文件)、htdocs(网站根目录)等子目录。
安装后配置与启动
编译安装的Apache需要手动配置才能正常运行,主要包括配置文件修改、服务启动和开机自启设置。
修改配置文件
主配置文件为/usr/local/apache2/conf/httpd.conf,关键配置项如下:

- 监听端口:修改
Listen 80确保端口未被占用; - 网站根目录:调整
DocumentRoot "/usr/local/apache2/htdocs"; - 服务器名称:设置
ServerName localhost:80避免启动警告。
启动服务
通过apachectl脚本启动Apache:
/usr/local/apache2/bin/apachectl start
访问http://localhost,若显示”It works!”则表示安装成功。
设置开机自启
将Apache服务添加到系统服务列表,并设置开机启动:
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd chmod +x /etc/init.d/httpd chkconfig --add httpd chkconfig httpd on
常见问题与优化建议
编译错误排查
若编译时报错”apr not found”,需安装APR库或使用--with-included-apr参数;若报错”pcre library not found”,需确保pcre-devel已安装。
性能优化
- 调整工作模式:根据场景选择
worker或event模式,event模式适合处理大量Keep-Alive连接; - 启用缓存:配置
mod_cache和mod_disk_cache提升静态资源访问速度; - 日志管理:使用
rotatelogs工具分割日志,避免单个日志文件过大。
安全加固
- 限制目录访问:在配置文件中添加
<Directory>标签,禁止访问敏感目录; - 关闭不必要的模块:如
mod_autoindex(禁止目录列表)和mod_info(避免泄露服务器信息); - 配置SSL:使用Let’s Encrypt获取免费证书,启用HTTPS加密传输。
通过以上步骤,即可完成Linux环境下Apache的编译安装,并根据实际需求进行优化配置,编译安装虽然比二进制包复杂,但提供了更高的灵活性和可控性,适合对性能和功能有特定要求的场景。


















