PHP Thread Safe et Non-Thread Safe sur Windows et Linux
Par PlaceOweb le samedi, avril 30 2016, 08:18 - PHP - Lien permanent
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.
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