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

What does php vc11 mean?

藏色散人
藏色散人Original
2021-03-16 09:54:092488browse

php vc11 refers to the vc11 version of PHP. Before users download the VC11 version, they need to install "VisualC RedistributableforVisualStudio2012" first.

What does php vc11 mean?

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

PHP about VC11, VC9, VC6 and The problem of selecting Thread Safe and Non Thread Safe versions

Here are the information I collected when setting up the PHP environment for your reference:

Now there are PHP installation packages available for download from the PHP official website What does the words VC11 or VC9 mean? Which installation package should we download is better? In fact, the PHP official website gives the answer:

The VC6 version is compiled using the Visual Studio 6 compiler. If your PHP is installed with 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 VisualStudio2008, while VC11 is compiled with VisualStudio2012. 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.

To build php, first check the version of the operating system. If it is Windows, click here: http://windows.php.net/download/

Is the operating 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 is a WEB server? 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 a surprising fact: the official version of Apache httpd and the official version of PHP are actually incompatible! So how does the existing Apache PHP under Windows work? You can use VC11 to compile Apache httpd yourself, but this is too much trouble. PHP officially recommends downloading a third-party packaged version of Apache httpd. We recommend this site: http://www.apachelounge.com/download/. One point needs to be explained: this VC11 does not support XP. If you have XP nostalgia like me, you can only upgrade to 5.4.24. 5.5 is compiled with VC11, and VC11 does not support XP and 2003.

Recommended study: "PHP Video Tutorial"

If you are Linux-based, download the PHP source code here: http://cn2.php.net/downloads. php

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 it, 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 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)

Use the apt-cache search php command to 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, install yuminstall php-cli

How to choose Thread Safe and Non ThreadSafe versions?

Starting from version 5.2.1, the Windows version of PHP is divided into ThreadSafe (thread safety) and None Thread Safe (NTS, non-thread safety). What is the difference between the two? Which one should be used? 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 has provided a 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.

Let’s understand it literally. Thread Safe means thread safety. Thread safety checks will be performed during execution to prevent CGI execution from 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 checks, 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.

The 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 you are using ISAPI 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 vc11 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