Не правильное определение ядра windows

Вопросы по работе с Apache, Nginx, PHP, MySQL, Sendmail и т.д.
SX2
Сообщения: 14
Зарегистрирован:
03 авг 2013, 07:19

Не правильное определение ядра windows

SX2 » 17 ноя 2014, 16:36

Добрый день! Подскажите почему php определяет Windows 8.1 и Windows server 2012R2? как:
System Windows NT 6.2 build 9200
вместо
System Windows NT 6.3 build 9600

Проверял на всех версиях php 5.2. 5.3. 5.4. 5.5
1.jpg
(74.31 КБ) 0 скачиваний
2.jpg
Аватара пользователя
Максим
Сообщения: 5392
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 17 ноя 2014, 16:56

Вы наверное включили запуск в режиме совместимости с Windows 8 в свойствах файла Open Server.exe Почему и зачем вы это сделали - вам виднее. PHP тут не виноват.
SX2
Сообщения: 14
Зарегистрирован:
03 авг 2013, 07:19

SX2 » 17 ноя 2014, 17:01

Не включал я его в режиме совместимости, обычно установил и запустил!
Аватара пользователя
Максим
Сообщения: 5392
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 17 ноя 2014, 17:03

SX2 писал(а):Не включал я его в режиме совместимости, обычно установил и запустил!
Указанное вами несоответствие может быть только в том случае, если включали :) Проверьте, правая кнопка на файле Open Server.exe - свойства:

Изображение

Эта галочка (первая сверху) должна быть отключена.
SX2
Сообщения: 14
Зарегистрирован:
03 авг 2013, 07:19

SX2 » 17 ноя 2014, 17:06

Изображение
Аватара пользователя
Максим
Сообщения: 5392
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 17 ноя 2014, 17:23

Всё спасибо, уже ничего не нужно. Я сам проверил в виртуальной машине. Действительно это баг PHP. Просто гораздо чаще подобные ошибки возникают из-за запуска в режиме совместимости, поэтому сразу про него и подумал.

По итогу проверки - все старые версии PHP вообще не определяют что это Windows 8 или 8.1, последняя версия PHP 5.5 может определить что это Windows 8 билд 9200 но не определяет 8.1, видимо эта проблема исправлена в PHP 5.6 (сможете проверите когда выйдет Open Server с этим модулем, думаю на этой неделе).

Так что по всей видимости PHP берет данные о версии Windows не напрямую из системы, а определяет своими корявыми алгоритмами. Что из этого получается вы сами видите.
SX2
Сообщения: 14
Зарегистрирован:
03 авг 2013, 07:19

SX2 » 17 ноя 2014, 17:26

PHP 5.2 тоже определяет как Windows NT 6.2 build 9200
Аватара пользователя
Максим
Сообщения: 5392
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 17 ноя 2014, 17:32

SX2 писал(а):PHP 5.2 тоже определяет как Windows NT 6.2 build 9200
Написал выше - ждите обновления. PHP 5.2 самая старая версия PHP что есть в Open Server, у меня в виртуальной машине она тоже ничего не определяет, пишет 9200. Более новые версии PHP добавляют к этому Unknown Windows version. Только 5.5 определяет редакцию Windows 8 (Business edition), но всё равно пишет Windows 8 и билд 9200. Так что без обновления PHP тут никак, хотя и там не факт что будет правильно работать.
SX2
Сообщения: 14
Зарегистрирован:
03 авг 2013, 07:19

SX2 » 17 ноя 2014, 17:35

Изображение

PHP 5.2 хоть и самая старая, зато самая быстрая! (Лично для меня)
Аватара пользователя
Максим
Сообщения: 5392
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 17 ноя 2014, 17:42

SX2, PHP 5.2 крайне медленная версия, как бы вы ни думали. Чем новее версия PHP, тем быстрее она работает, это факт ;)
Ответить