windows apache源码安装

老刘

Windows Apache源码安装完整教程

很多人一提到在Windows上装Apache,第一反应就是去Apache Lounge下个现成压缩包解压就完事。这确实是最省事的方式,官方本身也不提供Windows二进制安装包。但如果你需要自定义模块、调试源码、或者想深入了解Apache的构建过程,源码编译就成了绕不开的选择。本文就从零开始,一步步讲清楚在Windows环境下如何从源码编译安装Apache HTTP Server。

为什么要在Windows上源码安装Apache

源码安装的核心优势在于可控。你能自己选择是否开启SSL、压缩模块、数据库驱动,也能把第三方模块直接编进去,甚至修改代码后重新编译。对做开发、测试或者需要特殊功能的人来说,这比直接用别人编译好的版本更灵活。

不过也要提前说清楚:Windows下的源码编译比Linux麻烦不少。官方文档明确指出,Apache项目只正式发布Unix源码,Windows编译需要额外准备Visual Studio环境、依赖库和一些转换工具。过程比直接下二进制包复杂得多,出错率也更高。如果你只是想搭个本地测试环境,优先推荐Apache Lounge的现成包;只有真正需要定制时才走源码路线。

准备工作:环境与依赖

先把编译环境搭好,这一步最容易踩坑。

  1. 安装Visual Studio
    推荐使用Visual Studio 2019或2022(Community版免费即可)。安装时务必勾选“使用C++的桌面开发”工作负载,并确保包含MSVC编译器、Windows SDK和CMake工具。老版本如VS2017也能用,但新版本对CMake支持更好。

  2. 安装Perl
    下载并安装Strawberry Perl或ActivePerl,安装后确保perl命令在系统PATH里能直接调用。后面转换换行符和构建OpenSSL都要用到它。

  3. 准备awk工具
    从Brian Kernighan的站点下载awk95.exe,改名为awk.exe放到系统PATH目录(比如C:\Windows\System32)。没有它的话,安装阶段配置文件里的占位符不会被替换,Apache启动会报错。

  4. 磁盘空间
    至少预留200MB空闲空间,实际编译过程中临时文件会更多。

  5. 可选但常用的依赖

    • zlib:用于mod_deflate压缩模块
    • OpenSSL:用于mod_ssl和HTTPS支持
      这两个需要单独下载源码并先编译好,再放到Apache源码的srclib目录下。

下载源码并整理目录

去Apache官网下载最新稳定版的Unix源码包(例如httpd-2.4.xx.tar.gz)。同时下载对应版本的APR、APR-Util和APR-Iconv源码。

解压后按以下结构整理:

httpd-2.4.xx/
├── srclib/
│   ├── apr/
│   ├── apr-util/
│   └── apr-iconv/
├── ...

把APR等解压后的内容直接放进对应子目录,不要多套一层文件夹。

打开命令提示符(建议用“x64 Native Tools Command Prompt for VS”),进入httpd源码根目录,执行换行符转换:

perl srclib\apr\build\lineends.pl

这一步把Unix风格的换行转成Windows能识别的格式,漏掉的话后面编译会出各种奇怪问题。

编译Apache

有两种主流方式:使用自带的Visual Studio项目文件,或使用CMake。新手建议先试项目文件方式,成熟稳定。

方式一:Visual Studio项目文件编译(推荐新手)

  1. 打开Apache.dsw(老格式)或转换后的.sln文件。
  2. 如果是较新的Visual Studio,打开后会提示升级项目,按提示转换即可。
  3. 在解决方案资源管理器里找到InstallBin项目,设为启动项目。
  4. 选择Release或Debug配置。
  5. 右键InstallBin → 生成。

编译成功后,程序会自动把文件安装到默认目录(通常是C:\Apache2)。你也可以在项目属性里修改INSTDIR参数,改成自己想要的路径。

命令行方式也可以:

nmake /f Makefile.win _apacher

_apacher是Release版本,_apached是Debug版本。

方式二:CMake编译

新版本Apache对CMake支持更好,适合熟悉CMake的用户。大致步骤:

  1. 创建build目录并进入。
  2. 运行cmake生成Visual Studio解决方案。
  3. 用Visual Studio打开生成的.sln,选择需要的目标进行编译。

CMake方式目前在功能完整性上还有一些限制,官方也提醒过这一点。

安装与基础配置

编译完成后,进入安装目录的bin文件夹,可以看到httpd.exe。

先用命令行测试能否正常启动:

httpd.exe -t

检查配置文件语法。没问题后执行:

httpd.exe

浏览器访问http://localhost,看到“It works!”页面就说明服务已经跑起来了。

接下来重点改conf/httpd.conf:

  • 修改ServerRoot为实际安装路径
  • 设置DocumentRoot为你的网站根目录
  • 把Listen端口改成需要的(默认80,可能需要管理员权限)
  • 按需加载模块(LoadModule)

改完后重启服务。Windows下可以把Apache注册成系统服务,方便开机自启:

httpd.exe -k install
httpd.exe -k start

常见问题与避坑建议

  1. 编译时报找不到头文件或库
    检查INCLUDE和LIB环境变量是否正确,尤其是Windows SDK路径。用VS自带的开发者命令提示符启动,环境变量会自动配置好。

  2. 启动时提示端口被占用
    netstat -ano | findstr :80查占用进程,关掉IIS或Skype等占80端口的程序,或者改Apache的Listen端口。

  3. 缺少Visual C++运行库
    即使自己编译,运行时仍需要对应版本的VC++ Redistributable。去微软官网下载安装即可。

  4. OpenSSL相关报错
    如果开启了mod_ssl,确保OpenSSL是按Windows方式正确编译的,并且dll文件放在bin目录或系统PATH里。

  5. 权限问题
    Windows下以管理员身份运行命令提示符再操作,能避免很多“拒绝访问”的错误。

实战建议

源码编译适合学习、定制和开发场景。日常生产或本地测试,直接用Apache Lounge提供的VS编译版本更省心,他们持续更新,模块齐全,稳定性经过大量用户验证。源码编译完成后,建议把整个安装目录备份一份,方便以后快速还原。

掌握源码安装后,你对Apache的模块加载、配置指令和构建逻辑会有更深的理解,后续自己写模块或排查问题时也会更从容。

文章版权声明:文章内容均来源于各大短视频平台搜集以及修改和删减新增,如有侵权或者违规,请联系站长进行删除,如需转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,1人围观)

还没有评论,来说两句吧...

目录[+]