Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何获得apache';谁的版本?_Php_Apache - Fatal编程技术网

Php 如何获得apache';谁的版本?

Php 如何获得apache';谁的版本?,php,apache,Php,Apache,当我尝试在我的网站上运行apache\u get\u version()函数时,我得到一个错误: 致命错误:未捕获错误:调用/srv/www/mywebsite.com/index.php:44堆栈跟踪:#0{main}中未定义的函数apache_get_version(),在第44行抛出/srv/www/mywebsite.com/index.php 但是,这在我的本地主机中有效。 我试过了 这应该会回显apache上的服务器版本,尽管它不会回显该版本 echo apache_get_vers

当我尝试在我的网站上运行
apache\u get\u version()
函数时,我得到一个错误:

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

但是,这在我的本地主机中有效。 我试过了

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

echo apache_get_version();
它将打印Apache的完整版本详细信息。

也许您可以试试

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

这些函数仅在将PHP作为Apache模块运行时可用

如果您以CGI/FastCGI或任何其他SAPI运行PHP,就没有可靠的方法来确定Apache版本,因为PHP与Apache的交互是最小的。如果服务器没有报告它(因此您可以在
$\u server
的某个地方读取它),那么您就不走运了


您还可以使用
phpinfo()

使用
$\u SERVER['SERVER\u SOFTWARE']
获取您正在运行的web服务器的数据。正如安德鲁所说,你可以自己编译。无法确定是否可以读取Apache版本,请创建一个phpinfo.php文件,如阿尔瓦罗·冈萨雷斯所述

<?php phpinfo(); ?>

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

只有在PHP作为普通Apache模块编译和安装时,该功能才可用。如果不是,那么,这种情况就会发生。安德鲁,我在一个网站上读到过,但是如何获得版本呢?你必须自己编译。看,安德鲁,我不能那样做,因为我无法进入终点站,这是没有办法的。使用您在回答中发布的函数。不,它根本不回显您使用的操作系统?Michael,我使用的是windows,但主机使用的是Linux,我相信,因此您没有终端使用权限?Michael,不,但我仍然可以运行shell_Exec。我可以看到服务器的API是CGI/FastCGI,它来自响应头。如果服务器没有报告它的版本,你只会得到Apache,甚至什么都没有。OP报告的问题就是运行这个函数时的一个错误。“调用未定义的函数apache_get_version()”好吧,仍然是它的活动函数
<?php phpinfo(); ?>
$apache_version = $_SERVER['SERVER_SOFTWARE'];
echo "$apache_version";