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";