基于apache版本加载不同的apache模块,其中一个配置包含?

时间:2013-10-23 21:18:59

标签: apache apache2 apache2.2 apache-modules

我希望有一个配置块(在一个包含的文件中),根据apache版本,LoadModule会有不同的文件。

e.g。

<some kind of magic detecting apache 2.2>
LoadModule  my_module /usr/local/my/module22.so

<else if apache 2.4>
LoadModule  my_module /usr/local/my/module24.so
<end magic>

有一种简单的方法吗?

我的问题的较长版本:我有一个apache模块,我构建了22和24版本。在生产服务器上,安装了两个模块。我无法控制运行哪个版本的apache,也无法控制启动选项(从而消除指令)。

我有一个小的配置存根文件,它包含在主配置文件中,大约有:

LoadModule my_module /usr/local/my/module22.so

<IfModule my_module>
..... some config stuff that is valid for either version
</IfModule>

模块本身与两个版本的apache都是源代码兼容的,但我必须有不同的二进制文件,因为模块api不是二进制兼容的。

大多数服务器使用2.2,少数服务器使用2.4,这完全取决于我的控制。我希望自动发生正确的事情,但我还没有找到办法。无论我做什么,它都需要与2.2和2.4语法兼容。想法?

或者,还有其他方式

1 个答案:

答案 0 :(得分:2)

这在apache指令中可用:IfVersion