Home >Backend Development >PHP Problem >What does php nts mean?

What does php nts mean?

藏色散人
藏色散人Original
2021-07-27 10:38:122542browse

php nts refers to "None-Thread Safe", which means non-thread safety; when PHP is generally run in fast cgi mode, choose the nts version, which has better performance.

What does php nts mean?

The operating environment of this article: windows7 system, PHP7.1 version, DELL G3 computer

php What does nts mean?

NTS stands for None-Thread Safe. Generally, this version is selected when running in fast cgi mode, which has better performance.

TS refers to Thread Safety, which is thread safety. This version is generally selected when IIS is loaded in ISAPI mode.

Specific:

Starting from the first Windows version of PHP 3.0.17 released on October 20, 2000, all versions are thread-safe. This is due to the fact that it is different from the Linux/Unix system. The difference between the multi-process working method is that the Windows system uses a multi-threaded working method. If you run PHP in CGI mode under IIS, it will be very slow. This is because the CGI mode is based on multi-process, not multi-thread. Generally, we will configure PHP to run in ISAPI mode. ISAPI is a multi-threaded mode, which is much faster. But there is a problem. Many commonly used PHP extensions are developed based on the multi-process thinking of Linux/Unix. When these extensions are run in ISAPI mode, they will go wrong and bring down IIS. Therefore, CGI mode is the safest way to run PHP under IIS, but CGI mode requires reloading and unloading the entire PHP environment for each HTTP request, and its consumption is huge.

In order to take into account the efficiency and security of PHP under IIS, Microsoft provides the FastCGI solution. FastCGI allows PHP processes to be reused instead of reopening a process for each new request. At the same time, FastCGI can also allow several processes to execute at the same time. This not only solves the problem of excessive consumption of CGI process mode, but also takes advantage of the fact that CGI process mode does not have thread safety issues.

Therefore:

If you use ISAPI to run PHP, you must use the Thread Safe (thread safe) version;

But if you use FastCGI mode to run PHP, there is no It is necessary to use thread safety check. Using None Thread Safe (NTS, non-thread safe) version can better improve efficiency.

Check the Thread Safety item through phpinfo(); printing environment. This item is to check whether it is thread safe. If it is: enabled, generally speaking it should be the ts version, otherwise it is the nts version.

A: When downloading the PHP installation file, I saw two different binary files, such as Non Thread Safe and Thread Safe, as listed on this page: http: //windows.php.net/download/. What does this mean and what is the difference between them?

The differences can also be viewed in the link above.

Q: This is mainly for web server. In a windows environment, if the web server you use is apchae or iis 7 or below, you should choose a thread-safe installation file. If you use Fast In -cgi mode, you can choose non-thread safety, because the web server itself can ensure thread safety.

Q: As mentioned above, it is for web servers. Some web servers use multi-threading instead of multi-process when processing application requests. The thread method involves shared registers and memory. , so it is easy to make mistakes. At this time, the program needs to spend some extra experience to deal with the consistency of the data in the register, that is, to ensure thread safety.

Of course, there is also the compiler used when compiling binary files: vc9 (vs series) vc6 (gcc)

So whether to use thread safety mainly depends on the PHP request used by your web server Processing method, if it is multi-threaded processing, please choose thread-safe, otherwise choose non-thread-safe. As mentioned above, Fast-cgi method can choose non-thread-safe.

[Recommended learning: PHP video tutorial]

The above is the detailed content of What does php nts mean?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn