Home  >  Article  >  Backend Development  >  What does php vc14 mean?

What does php vc14 mean?

藏色散人
藏色散人Original
2020-09-28 10:24:272731browse

php vc14 means that this version of PHP is compiled with Visual Studio 2015, which means that when users download the VC14 version of PHP, they need to install "VisualC RedistributableforVisualStudio2015" first.

What does php vc14 mean?

Recommended: "PHP Video Tutorial"

PHP VC14, VC11 , VC9 and Thread Safe and Non Thread Safe

Now the PHP installation package downloaded from the PHP official website has the words VC14, VC11 or VC9. In addition, Thread Safe and Non Thread Safe are distinguished. So what are these characters? Meaning, which installation package should we download is better? In fact, the PHP official website gives the answer, and I will introduce it to you below!

What do PHP VC14, VC11, VC9, Thread Safe and Non Thread Safe mean?

What does VC6/9/11/14 in the PHP version mean?

The VC6 version is compiled using the Visual Studio 6 compiler. If your PHP is built using Apache, then you should choose the VC6 version. (There is no VC6 for PHP now).

VC9 means that this version of PHP is compiled with Visual Studio 2008, while VC11 is compiled with Visual Studio 2012. Obviously VC14 is compiled with Visual Studio 2015. This means

If you download the VC9 version, you need to install VisualC RedistributableforVisualStudio2008SP1 first.

If you download the VC11 version, you need to install VisualC RedistributableforVisualStudio2012 first.

If you download the VC14 version, you need to install VisualC RedistributableforVisualStudio2015 first.

To build php, first check the version of the operating system. If it is Windows, follow the official website address

Operation Is the system 32-bit or 64-bit? If it is 32-bit, choose the version with "x86". If it is 64-bit, choose the version with "x64". Then look at what the WEB server is? If it is the IIS series, choose the version with "Non Thread Safe". If it is the Apache httpd series, choose the version with "Thread Safe". If it is Apache httpd, it also depends on how the binary version is compiled. There are three compilation types: VC6, VC9, and VC11 (representing Visual C 6, Visual C 2008, and Visual C 2012 respectively). Here's the trouble: the latest official version of PHP, 5.5, has been compiled with VC11, and 5.4 has been compiled with VC9. But the latest version of Apache httpd is still compiled with VC6. This means an amazing fact: the official version of Apache httpd and the official version of PHP are actually incompatible! So what happens to the existing Apache PHP under Windows? You can use VC11 to compile Apache httpd yourself, but this is too After struggling, PHP officially recommends downloading the third-party packaged version of Apache httpd, and recommends this site: http://www.apachelounge.com/download/. One thing to note: this VC11 does not support XP. If you are like me, XP nostalgia, the highest can only be upgraded to 5.4.24, 5.5 is compiled with VC11, and VC11 does not support XP and 2003.

If you are Linux system, download the source code of PHP here

Different from the Windows version above, what you download here cannot be used directly, it is just the source code of PHP. To install it, you need to compile it yourself. To compile, you need to install a bunch of compilation software such as gcc and make. I saw that ./configure, make, and make install are mentioned in the document, which refers to the source code version of PHP.

Compiling PHP by yourself is even more troublesome. There are a lot of dependent libraries and there are a lot of pits waiting for people to fall into. I will talk about it in another article. If you find it troublesome, you can find a compiled version, specifically the official software library of each distribution. The following takes the popular ubuntu system and centos system as examples to illustrate respectively;

deb package management type (ubuntu, Debian)

Using the apt-cache search php command can search for many results, we need It is "php5", and the complete command is: apt-get install php5

This is obviously not always applicable, because the command contains version number 5, and no one knows what will happen to PHP6 in the future.

If you want to install a command line php engine in the shell, install this package

apt-getinstall php5-cli

RPM package management (Fedora, RedHat, SUSE, CentOS)

yuminstall php

If It is a php command line, just install yuminstall php-cli

How to choose the Thread Safe and Non ThreadSafe versions?

The Windows version of PHP has been divided into ThreadSafe (thread safety) and None Thread Safe (NTS, non-thread safety) since version 5.2.1. What is the difference between the two? Which one should be used? Which one? Here is a brief introduction.

Starting from the first Windows version of PHP 3.0.17 released on October 20, 2000, all versions are thread-safe. This is because the Windows system uses a multi-process working method different from the Linux/Unix system. It adopts 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.

First understand from the literal meaning, Thread Safe is thread safety. Thread (Thread) safety check will be performed during execution to prevent the CGI execution method of starting new threads when there are new requirements and exhausting system resources. Non Thread Safe is non-thread safe and does not perform thread (Thread) safety checks during execution.

Therefore, if you use ISAPI to run PHP, you must use the ThreadSafe (thread safe) version; and if you use FastCGI mode to run PHP, there is no need to use thread safety check, use None Thread Safe (NTS , non-thread-safe) version can better improve efficiency.

Let’s look at the two execution methods of PHP: ISAPI and FastCGI.

ISAPI execution method is used in the form of a DLL dynamic library, which can be executed after being requested by the user. It will not disappear immediately after processing a user request, so thread safety checks are required to improve the program's performance. Execution efficiency, so if ISAPI is used to execute PHP, it is recommended to choose the Thread Safe version;

The FastCGI execution method uses a single thread to perform operations, so there is no need to perform thread safety checks, except for thread safety checks. Protection can actually improve execution efficiency. Therefore, if FastCGI is used to execute PHP, it is recommended to choose the Non Thread Safe version.

The above is the detailed content of What does php vc14 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