0

我使用 phpinfo() 来确定远程服务器上安装了哪个操作系统。它是Linux。有什么方法可以使用 php 来确定 Linux 的风格吗?

4

3 回答 3

0

PHP 应该能够从/etc/issueor中读取/proc/version,这些将适用于多种 Linux 版本,并且应该能够生成非常精确的服务器图片。这是在 Vagrant Ububtu 盒子上运行的:

<?php

$issue = file_get_contents('/etc/issue');
//  Ubuntu 12.04 LTS \n \l

$version = file_get_contents('/proc/version');
// Linux version 3.2.0-23-generic-pae (buildd@palmer) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu4) ) #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012

但这不仅限于 Ubuntu,以下是来自基本共享服务器帐户的结果:

file_get_contents('/etc/issue');
// CloudLinux Server release 5.9 (Sergey Oleynikov)
// Kernel \r on an \m

file_get_contents('/proc/version');
// Linux version 2.6.18-408.8.2.el5.lve0.8.61.3 (mockbuild@koji.cloudlinux.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-52)) #1 SMP Wed Jul 11 06:49:35 EDT 2012
于 2013-10-03T06:00:01.633 回答
0

Ubuntu 风格都是相同的操作系统——它们之间的唯一区别在于默认安装的软件包集。由于以后可以安装和删除软件包,因此无法可靠地分辨出其中的区别。

(Ubuntu 风格之间的大部分区别在于默认桌面环境和应用程序,无论如何这对服务器来说并没有太大的兴趣。事实上,大多数服务器可能根本没有使用“风格”安装。 )

于 2013-10-03T05:38:59.760 回答
0

尝试阅读/etc/os-release,例如

php > $test = parse_ini_file('/etc/os-release');
php > print_r($test);
Array
(
    [NAME] => Ubuntu
    [VERSION] => 12.04.3 LTS, Precise Pangolin
    [ID] => ubuntu
    [ID_LIKE] => debian
    [PRETTY_NAME] => Ubuntu precise (12.04.3 LTS)
    [VERSION_ID] => 12.04
)
于 2013-10-03T05:43:26.170 回答