获取PHP中的web服务器版本

获取PHP中的web服务器版本,php,server,Php,Server,我想要PHP版本的web服务器(Nginx、MySQL、MariaDB等) 我知道Apache的函数:Apache\u get\u version()。 有许多phpinfo()返回所有值,但如何利用 您可能会有一个想法,或者暂时无法实现?解决$\u服务器的超级全局问题 我相信您想要的设置是: echo $_SERVER['SERVER_NAME']; 一个简单的shell\u exec就可以做到这一点(假设您在基于unix的服务器上)。只是不要将任何用户数据放入命令中,请注意,这种方法在共享

我想要PHP版本的web服务器(Nginx、MySQL、MariaDB等)

我知道Apache的函数:
Apache\u get\u version()
。 有许多
phpinfo()
返回所有值,但如何利用


您可能会有一个想法,或者暂时无法实现?

解决$\u服务器的超级全局问题

我相信您想要的设置是:

echo $_SERVER['SERVER_NAME'];

一个简单的
shell\u exec
就可以做到这一点(假设您在基于unix的服务器上)。只是不要将任何用户数据放入命令中,请注意,这种方法在共享托管环境中可能不起作用:

$nginxVersion = shell_exec('nginx -v 2>&1');
$mysqlVersion = shell_exec('mysql --version');

请注意,因此您需要通过管道将其传输到stdout以捕获它。

您可以使用$\u server superglobal检索web服务器的版本,更具体地说,可以使用:

 $_SERVER['SERVER_SIGNATURE']
根据PHPs文件:

服务器签名

包含服务器版本和虚拟主机名的字符串,如果启用,将添加到服务器生成的页面

您可以在PHP官方文档网站上找到更多信息:

要在PHP中查询MySQL和/或MariaDB的版本,可以使用或(如果您仍在使用不推荐使用的旧MySQL API)。PDOAPI没有类似的函数或类,但是在这种情况下,您可以只使用SQL查询的结果

SELECT VERSION();
它返回类似于
5.5.50-0+deb7u2
。下面是一个简单的例子:

<?php
  $user = 'username_here';
  $pass = 'your_db_password';
  // create DB connection
  $dbh = new PDO('mysql:host=localhost;dbname=mysql', $user, $pass);
  $stmt = $dbh->query('SELECT VERSION();');
  //fetch first column of first result row and print it out
  echo $stmt->fetchColumn();
  //unset PDOStatement and PDO to close DB connection
  unset($stmt);
  unset($dbh);
?>

其他答案提到了如何获取web服务器和数据库版本的不同方法,但是有一个函数可以获取操作系统本身

// Gets the "System" row shown at the top of the `phpinfo()` table.
$system = php_uname( $mode = 'a' );
可以指定选择不同组件的模式。默认情况下,它将以空格分隔并按以下顺序显示所有组件:

  • s:操作系统名称
  • n:主机名
  • r:发布名称
  • 五:版本信息
  • m:机器类型

谢谢您的回答。这一次,$\u SERVER['SERVER\u SOFTWARE']仅适用于web服务器。