Hello! 欢迎来到小浪云!


如何查看apache版本?apache编译选项有哪些?


avatar
小浪云 2025-06-02 12

要查看 apache 版本和编译选项,1. 可在命令行执行 httpd -v 或 apache2 -v 查看主次版本号;2. 通过创建 info.php 文件并访问网页获取运行环境中的版本信息;3. 执行 httpd -v(大写 v)可查看详细编译参数;4. 若系统未保留完整编译参数,可通过 /usr/sbin/apachectl -v 或 /usr/sbin/apache2ctl -v 获取;5. 常见编译选项包括 –prefix=path 指定安装路径、–enable-so 启用动态模块加载、–enable-rewrite 支持 url 重写、–enable-ssl 启用 https、–with-apr 指定 apr 路径等;6. 判断是否支持 mod_rewrite 的方法除了查看编译参数外,还可通过配置测试规则验证其功能是否生效。了解这些信息有助于排查兼容性问题、适配模块或进行安全加固。

如何查看apache版本?apache编译选项有哪些?

Apache 是一个广泛使用的 Web 服务器软件,查看其版本和编译选项是日常维护中常见的需求。了解这些信息有助于排查问题、适配模块或进行安全加固。


查看 Apache 版本

最简单的方法是使用命令行工具执行以下命令:

httpd -v

或者如果你的系统中 Apache 是通过 apache2 命名的,可以尝试:

apache2 -v

这两个命令会显示当前运行的 Apache 主版本和次版本号,比如:

Server version: Apache/2.4.41 (Unix) Server built:   Feb 10 2023 14:30:56

如果 Apache 正在运行,也可以通过访问网页的方式来获取版本信息:在站点根目录创建一个 php 文件(如 info.php),内容为:

<?php phpinfo(); ?>

然后浏览器访问这个文件,查找“Apache”相关部分就能看到版本号。


查看 Apache 的编译选项

要查看 Apache 启动时所使用的编译参数,可以执行:

httpd -v

注意这里用的是大写 V。这个命令不仅会显示版本信息,还会列出所有编译时指定的选项,比如:

-D APACHE_MPM_DIR="server/mpm/event" -D APR_HAS_SENDFILE -D APR_HAS_MMAP ...

这些参数决定了 Apache 支持哪些功能以及如何与操作系统交互。例如 -enable-mods-shared=all 表示所有的模块都是以共享模块的形式加载的,而 –prefix=/usr/local/apache2 指定了安装路径。

有些 Linux 发行版(如 Ubuntu)默认安装的 Apache 可能不会保留完整的编译参数。这时候可以通过如下方式间接获取:

  • 查看 /usr/sbin/apachectl -V 或者 /usr/sbin/apache2ctl -V
  • 或者查看包管理器的构建日志(较复杂)

编译 Apache 时常见选项有哪些?

如果你是从源码编译 Apache,通常会使用类似以下命令:

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

几个关键选项说明:

  • –prefix=PATH:设置 Apache 安装路径,默认是 /usr/local/apache2
  • –enable-so:启用动态模块加载(DSO)支持,非常关键,否则无法使用 .so 模块
  • –enable-rewrite:启用 URL 重写模块(mod_rewrite),对 SEO 和伪静态很重要
  • –enable-ssl:启用 https 支持(mod_ssl)
  • –with-apr 和 –with-apr-util:指定 APR(Apache Portable Runtime)路径,用于跨平台支持
  • –enable-deflate:启用压缩输出,节省带宽
  • –enable-expires:允许设置缓存过期时间,优化前端性能

你可以通过 ./configure –help 查看完整可选配置项列表,里面有很多细节选项可以根据需要开启或关闭。


小贴士:如何判断 Apache 是否支持 mod_rewrite?

除了看编译参数外,还可以临时创建一个虚拟主机配置,加入如下内容:

<IfModule mod_rewrite.c>     RewriteEngine On     RewriteRule ^test$ /index.html [L] </IfModule>

保存后重启 Apache,并测试访问 /test 是否跳转到首页。如果不报错且正常跳转,说明 mod_rewrite 已启用。


基本上就这些。版本和编译参数虽然看起来不复杂,但在实际排查兼容性或升级问题时特别有用。

相关阅读