获取当前的Apache版本字符串以供显示

时间:2010-04-06 21:20:09

标签: windows apache apache2 version

我正在编写一个Apache模块,希望获得一个包含Apache名称版本和其他详细信息的字符串。很像添加到传出标题的内容,例如:

Server: Apache/2.2.13 (Win32)

我尝试过这样的代码:

apr_table_get(request_rec->headers_out,"Server")

但这似乎不起作用。是否有我未找到的API调用,或者我注定要从httpd.exe获取版本资源数据?

3 个答案:

答案 0 :(得分:0)

尝试此命令

apache2 -v

应打印出类似这样的内容

Server version: Apache/2.2.11 (Ubuntu)
Server built:   Mar  9 2010 21:05:51

大多数unix命令都有-v选项

看起来你正试图从php中获取它,php中的exec命令会让你在服务器上运行命令

答案 1 :(得分:0)

我不确定Apache模块,但对于CGI脚本,当前Web服务器的名称存储在SERVER_SOFTWARE环境变量中。例如,在Perl中,您可以使用$ENV{SERVER_SOFTWARE}来读取它。在C中,您将使用getenv ("SERVER_SOFTWARE")

为了找到服务器软件,为什么不只是通过Apache源代码来查找定义的位置。

使用Apache 1.3.41执行此操作时,我发现它在第240行的名为util_script.c的文件中定义如下:

ap_table_addn(e, "SERVER_SOFTWARE", ap_get_server_version());

看起来有一个名为ap_get_server_version的函数,它将值作为字符串返回。

答案 2 :(得分:0)

找到它:ap_get_server_version,我的HTTPD2 API包装器缺少此声明