Вибір версії php для windows

Вибір версії PHP для Windows

Потрібна версія PHP залежить від версії веб-сервера, на якому він буде використовуватися. Наприклад, Apache 1.3.x працює з РНР версії 3.0.х, Apache 2.х працює з РНР версії 4.0 і вище. Але це не така вже й проблема, орієнтуйтеся на більш нові стабільні релізи і те, що стоїть біля хостера.

Крім того, якщо web-сервером у вас буде старенький Apache з сайту apache.org, то потрібно качати VC6 версії PHP, для компіляції яких використовувався Visual Studio 6. Якщо ж PHP буде працювати для IIS або в зв'язці з новішим Apache. то можна зібрати що-небудь сучасніше;)

Для мене головним ступором у виборі служить хостер. Зараз є стабільна версія PHP 5.5.4, а у нього до цих пір 5.2.17!

Різниця між thread safe і non thread safe бінарними пакетами PHP

У той час було кілька варіантів для збільшення продуктивності PHP на IIS. Перший - використовувати кешування опкода програмами типу eAccelerator, які зберігають PHP-скрипти в частково скомпільованому стані на диску і / або в пам'яті. Такий підхід значно скорочує час виконання скрипта. Інший варіант полягав в налаштуванні IIS на використання PHP в режимі FastCGI. При цьому PHP-процес після відпрацювання не закривався, а отримував нове завдання з черговим php-запитом. До того ж можна було запустити кілька PHP-процесів одночасно, відчутно прискорюючи обробку запитів, що було бонусом CGI-режиму PHP. При цьому могли бути незначні проблеми із сумісністю PHP-розширень. Це як і раніше найшвидший спосіб використання PHP, і саме на завдання такої конфігурації IIS налаштований установник "IIS Aid PHP Installer".

Бінарники, зібрані в потоко-небезпечному режимі (non thread safe, NTS). дозволяють конфігурувати IIS (і інші веб-сервера під Windows) на використання PHP, як стандартний CGI-інтерфейс з сильним приростом продуктивності, тому що в цьому випадку (в такій збірці) PHP-процесу не потрібно чекати синхронізації ниток. При порівнянні роботи "thread safe" і "non thread safe" бінарних пакетів PHP на IIS в якості стандартного CGI-інтерфейсу приріст швидкодії становить до 40%, але це все одно не так спритно як використання опкода в FastCGI методі. А найбільший косяк в тому, що не можна стабільно використовувати потоко-небезпечні бінарники разом з потоко-безпечними. Це означає, що ви не можете використовувати системи кешування опкода типу eAccelerator в середовищі PHP, створеної потоко-небезпечними бінарними пакетами (твердження, вірне на момент написання статті).

Якщо потоко-небезпечний PHP можна конфігурувати до такої ж швидкості, що і потоко-безпечне середовище, то навіщо він потрібен в такій збірці? Повертаємося до FastCGI і розробок Microsoft в цій області за останні кілька років. Кодери дрібном'який створили свій варіант FastCGI, який дозволяє конфігурувати потоко-небезпечні бінарники PHP в режимі FastCGI, що доводить продуктивність до швидкості світла :)

Зі статті я зробив висновок, що гальма спостерігаються тільки при використанні з веб-сервером IIS. У будь-якому випадку, тупняк під Windows + Apache я не бачив. У ній же сказано, що можна розігнати NTS-збірку на будь-якому веб-сервері, але я не уявляю собі такий конфіг Apache.

Схожі статті