我使用 phpinfo() 来确定远程服务器上安装了哪个操作系统。它是Linux。有什么方法可以使用 php 来确定 Linux 的风格吗?
问问题
155 次
3 回答
0
PHP 应该能够从/etc/issue
or中读取/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 回答