我使用 phpinfo() 来确定远程服务器上安装的操作系统。它是Linux。有没有办法使用 php 确定 Linux 的风格?
Ubuntu 风格都是相同的操作系统——它们之间的唯一区别在于默认安装的软件包集。由于软件包可以在以后安装和删除,因此无法可靠地区分。
(Ubuntu 风格之间的大多数差异都在于默认的桌面环境和应用程序,无论如何,这在服务器上都不会引起太大的兴趣。事实上,大多数服务器可能根本不使用"调味"安装。
> 尝试从/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
)
PHP应该能够读取/etc/issue
或/proc/version
,这些将适用于许多版本的Linux,并且应该可以非常精确地了解您的服务器。这是在一个流浪者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