Aller au contenu | Aller au menu | Aller à la recherche


PHP Thread Safe et Non-Thread Safe sur Windows et Linux

Quel version de thread binaire de PHP faut il installer ?

  • Non Thread Safe (NTS)
  • Thread Safe (TS)

Sur la page de téléchargement de PHP pour Windows, il est spécifié dans la section "Quelle version choisir ?" :

With Apache you have to use the Thread Safe (TS) versions of PHP.

TS et NTS

  • TS refers to multithread capable builds.
  • NTS refers to single thread only builds.

Use case for TS binaries involves interaction with a multithreaded SAPI and PHP loaded as a module into a web server. For NTS binaries the widespread use case is interaction with a web server through the FastCGI protocol, utilizing no multithreading (but also for example CLI).

Ressources

What does thread safety mean when downloading PHP?

Thread Safety means that binary can work in a multithreaded webserver context, such as Apache 2 on Windows. Thread Safety works by creating a local storage copy in each thread, so that the data won't collide with another thread.

So what do I choose? If you choose to run PHP as a CGI binary, then you won't need thread safety, because the binary is invoked at each request. For multithreaded webservers, such as IIS5 and IIS6, you should use the threaded version of PHP.

Installation sur les systèmes Windows

Apache 2.x sur les systèmes Unix

Avertissement : Nous ne recommandons pas l'utilisation de PHP dans un environnement threadé MPM, avec Apache 2. Utilisez le mode prefork MPM, qui est le MPM par défaut pour Apache 2.0 et 2.2. Pour savoir pourquoi, lisez l'entrée de la FAQ correspondante à l'utilisation d'Apache 2 dans un environnement threadé MPM.

Note : Pour compilez une version multi-threadée d'Apache, le système cible doit supporter les threads. Dans ce cas, PHP doit également être construit avec l'expérimental Zend Thread Safety (ZTS). Sous cette configuration, toutes les extensions ne seront pas disponibles. Nous vous recommandons de compiler Apache avec le prefork MPM-Module.

Pourquoi ne doit-on pas utiliser Apache 2 dans un environnement threadé multiprocesseur de production ?

What is thread safe or non thread safe in PHP

Pour savoir comment est configuré votre Apache, dans le phpinfo(), regarder "Server API" qui doit valoir :

  • Apache 2.0 Handler
  • CGI/FastCGI

PHP Thread Safe and Non-Thread Safe for Windows

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet