Попробуйте использовать функцию php_uname ...
<?php
echo php_uname('s');/* Operating system name */
echo "<br />";
echo php_uname('n');/* Host name */
echo "<br />";
echo php_uname('r');/* Release name */
echo "<br />";
echo php_uname('v');/* Version information */
echo "<br />";
echo php_uname('m');/* Machine type */
echo "<br />";
echo PHP_OS;/* constant will contain the operating system PHP was built on */
?>
Источник - Определить операционную систему - http://www.sitepoint.com/forums/showthread.php?t=510565
Другой метод заключается в использовании ...
echo $_SERVER['SERVER_SOFTWARE'];
Возвращает следующую строку на моем ibm t400 под управлением Win 7 (64-разрядная версия) ...
Apache / 2.2.12 (Win32) DAV / 2 mod_ssl / 2.2.12 OpenSSL / 0.9.8k mod_autoindex_color PHP / 5.3.0 mod_perl / 2.0.4 Perl / v5.10.0
К сожалению, он возвращает WIN32, потому что я использую 32-битную версию apache.
Вы можете получить общую информацию о процессоре (на * nix-сервере), используя команду cmd ...
echo system('cat /proc/cpuinfo');
Вероятно, вам придется использовать комбинацию методов, если вы планируете поддерживать множество различных ОС.