Home  >  Article  >  Backend Development  >  Regarding downloading the PHP installation package

Regarding downloading the PHP installation package

零到壹度
零到壹度Original
2018-03-22 15:13:074740browse

Nowadays, the PHP installation packages downloaded from the PHP official website all have the words VC11 or VC9. What does this mean? Which installation package should we download 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 built 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 that 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.

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

Unlike the Windows version above, the one downloaded here cannot To use it 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 There are a lot of results, we need "php5", the complete command is: apt-get install php5
This is obviously not always applicable, because the command has version number 5, 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 multi-process working method is different from the Linux/Unix system. 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 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. It 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 Regarding downloading the PHP installation package. 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