如何获得apache的版本?

时间:2017-02-03 10:16:01

标签: php apache

当我尝试在我的网站上运行apache_get_version()功能时,出现错误:

  

致命错误:未捕获错误:在/srv/www/mywebsite.com/index.php:44中调用未定义函数apache_get_version()堆栈跟踪:#s {main}抛出/ srv第44行/www/mywebsite.com/index.php

但是这可以在我的localhost中使用。 我试过了

function apache_version()
{
    $ver = explode(" ",$_SERVER["SERVER_SOFTWARE"],3);
    return ($ver[0] . " " . $ver[1]);
}
echo apache_version();

这应该在apache上回显服务器版本,尽管它不会回显版本

5 个答案:

答案 0 :(得分:2)

来自the introduction to Apache functions

  

这些功能仅在将PHP作为Apache模块运行时才可用。

如果您将PHP作为CGI / FastCGI或任何其他SAPI运行,那么确定Apache版本并不可靠,因为PHP与Apache的交互最少。如果服务器没有报告它(因此你可以在$_SERVER的某个地方阅读它),那你运气不好。

您还可以determine how PHP runsphpinfo()一起使用。

答案 1 :(得分:0)

也许你可以试试

<?php
echo shell_exec('httpd -version');

答案 2 :(得分:0)

您可以使用$_SERVER['SERVER_SOFTWARE']获取正在运行的网络服务器。正如安德鲁所说,你可以自己从here编译它。没有办法解决它

答案 3 :(得分:0)

要确定您是否可以阅读Apache版本,请创建ÁlvaroGonzález提到的phpinfo.php文件。

<?php phpinfo(); ?>

运行文件,如果PHP变量 $ _ SERVER ['SERVER_SOFTWARE'] 带有值列出,则在PHP代码中使用以下内容:

$apache_version = $_SERVER['SERVER_SOFTWARE'];
echo "$apache_version";

报告的值取决于配置,可能根本没有列出。否则,您可能会得到类似Apache / 2.4.29(Unix)或Apache / 2.2.22(Win64)等的信息。

答案 4 :(得分:-4)

echo apache_get_version();

它将打印Apache的完整版本细节。