当我尝试在我的网站上运行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上回显服务器版本,尽管它不会回显版本
答案 0 :(得分:2)
来自the introduction to Apache functions:
这些功能仅在将PHP作为Apache模块运行时才可用。
如果您将PHP作为CGI / FastCGI或任何其他SAPI运行,那么确定Apache版本并不可靠,因为PHP与Apache的交互最少。如果服务器没有报告它(因此你可以在$_SERVER
的某个地方阅读它),那你运气不好。
您还可以determine how PHP runs与phpinfo()
一起使用。
答案 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的完整版本细节。