获取PHP中的web服务器版本
我想要PHP版本的web服务器(Nginx、MySQL、MariaDB等) 我知道Apache的函数:获取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的服务器上)。只是不要将任何用户数据放入命令中,请注意,这种方法在共享
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服务器。