Athos99, PHP et développement WEB

Un site consacré au développement web en php

PHP Thread safe ou Not Tread Safe ? VC6 ou VC9, VC11, VC14

Date: 
12 sep 2015

Question existentielle, quelle version de PHP faut-il installer sur mon serveur windows, dois-je utiliser une version avec ou sans Thread safe, avec VC6 ou VC9, VC11, VC14 ?

Thread Safe et Not Thread Safe

Le terme Thread Safe (programme à fil sécurisé) désigne la capacité d'un programme de fonctionner par plusieurs processus (multi-threads).

Windows est basé sur une architecture mutli-tâche (thread), par opposition à l'architecture multi-processus (process) de linux/unix, ce qui implique d'avoir une version de PHP thread safe. L’environnement SAPI (module) d'apache et d'IIS (internet information server) exigent une version de thread safe de PHP. Les versions Thread Safe de PHP ont parfois le terme _TS comme suffixe.

Il existe un autre environnement sous Apache et IIS appelé CGI ou FastCGI qui a été construit sur un modèle de multi-processus au lieu d'un modèle multi-tâche. Cela permet d'utiliser une version Non Thread Safe de PHP.  Les versions No Thread Safe de PHP ont le terme _NTS comme suffixe.

Sous l'environnement CGI, PHP est considéré comme plus stable mais possède l'inconvénient majeur d'être plus lent pour la raison que l'on doit charger et décharger en mémoire l'environnement complet de PHP à chaque requête web. En utilisant une version non thread safe, l'éxécution du PHP devient plus rapide. La version FastCGI est encore plus rapide et permet d'utiliser les versions de PHP not thread safe le rendant encore plus rapide que CGI. Microsoft a optimisé sur ses serveurs IIS la version FastCGI pour booster les performances.

En résumé: Par défaut, vous pouvez utilisez la version thread safe de PHP. Mais si vous utilisez le mode CGI ou FastCGI, vous pouvez aussi utiliser la version Not Thread Safe qui sera plus rapide.

VC6, VC9, VC11, VC14

Le terme VC6 désigne une version de PHP compilée avec le compilateur Microsoft Visual Studio 6.
Le terme VC9 désigne une version compilée avec Mircosoft Visual Studio 2008.
Le terme VC11 désigne une version compilée avec Microsof Visual Studio 2012.
Le terme VC14 désigne une version compilée avec Microsof Visual Studio C++ 2015.

Les dernières versions du visual studio sont considérées comme plus performantes et stables.

Si PHP est utilisé avec IIS, il vous faut la version VC9 ou suivante.  Pour Apache 1 ou Apache 2, il vous faut la version VC6. N'utilisez pas la version VC9 si vous utilisez une version apache prête à être installée provenant du site apache.org.

Petit problème, les dernières versions de PHP  ne sont disponibles seulement en version VC9, VC11, VC14, vous devez utiliser une version d'apache prévue pour VC9 qui est proposée par Apache Lounge.

Si vous utilisez des extensions externes (Xdebug, apc..) vérifiez que celles-ci correspondent à votre version de PHP (avec ou sans thread safe, VC6 ou VC9, VC11, VC14).

Vous pouvez afficher la configuration de votre serveur PHP en utilisant la fonction phpinfo() depuis un script PHP. Les champs "Compiler" et "Thread Safety" contiennent les informations recherchées.

 

Win32 ou X64

Win 32 désigne une version 32 bit et x64 la version 64 bits. Selon la version d'apache win32 ou x64 pour dever choisir la version de PHP correspondante.

 

Rubrique: 
PHP
Tags: 
PHP
Apache
Serveur