Editing and Finishing: wheat
Everyone in the choice of PHP version must be very confused, there are so many versions to choose that?
Problem:
We have now bought a new server, with Windows Server R2. Configure the environment for PHP 5.4.
But we developed the use of the 2003,php is 5.2 version, the migration to the new server, the program will affect the operation? Or do I have to pay attention to those problems?
API version
PHP using a large version of backward-compatible upgrade, that is, 5.5 compatibility 5.1-5.4, if so, in fact, the compatibility is not optimistic, we also do not expect that the official PHP will give a good solution. Now September 2013, version has 5.2.17 5.3.27 5.4.17 5.5.3
5.2.17
This version can be said to be the most widely supported version, and now the vast majority of open source software to use this version, such as drupal7.23,joomla2.5, the vast majority of domestic software: dedecms5.7, DiscuzX3 and so on the latest version is still supporting 5.2, if not specifically required, installation of this version is the most worry and effort, but in the long run may eventually be abandoned. Now many of the host business in order to save labor costs also lazy to upgrade PHP version, anyway basically support. (here inserted a sentence, now the domestic software in order to be compatible with more installation environment, is well-intentioned, even PHP5.1 can support (discuzX3 not support), the most rare is the performance is also not behind how much, can do as some extreme really not easy! DRUPAL6 recommends using this version.
5.3.28 (recommended)
This version, although the name is the beginning of 5, But many people think it is the beginning of the PHP6.0 version, performance has improved, and because many APIs have changed, the compatibility of 5.2 is not very good, although a part of the open source software claims to be compatible with 5.2-5.3, but the problem seems to be a lot, many simply give up 5.2, for example, JOOMLA3 only support more than 5.3. For Drupal7 It is strongly recommended to use this version and support is pretty good. This version is also available for Drupal8, and support is pretty good. This version is used in a very wide range, making a good balance between performance and compatibility.
5.4 (lightly recommended)
5.4 Basically has been close to the whole, the present relatively perfect, stability and performance is also good, the key version of the future upgrade, drupal7.x to its support is fair, but the third-party module is not perfect. If you are too lazy to upgrade later, you can one step install this version.
5.5
Starting with 5.3, the future version is basically a performance boost, and functions can be backwards compatible. 5.5 began to appear to have a 64-bit version, the performance is more powerful, I have not tried, dare not to make comments.
Summarize
If open source software says install PHP5.3, then you honestly use 5.3, do not use 5.5 what, you may think that can be compatible anyway, performance may be better, why not new? That is to say, but you know that open source software in the development of the time is generally in a specific environment development, even if the compatibility of the good will also have unexpected surprises (the strong team is also impossible to all the function API compatibility test, that is a pretty scary workload!). ), it will only be tested and optimized in a specific environment, and even if there is a problem with compatibility, the team will not be able to modify it in order to be compatible with a higher version, not to be inflexible, but to be considered for security and stability. In the open source atmosphere, we should have a sense that "enough is the best", rather than "the latest is the best." For example, Joomla3.1 in 5.4-5.5 are running bad, even installation can not be successful. But Drupal is also running normal under the 5.5.3 (this machine), I think is individual case? But it seems that there have been unexpected errors in the operation, do not know whether the version of the problem, I hope not.
None-thread-safe or Thread-safe
Apache general election None-thread-safe,iis the latter (fast-cgi), I will not explain, letter brother is right.
TS refers to thread Safety, which is threaded, and is typically selected when IIS is loaded in ISAPI mode.
NTS is the None-thread Safe, usually in fast CGI run time to choose this version, with better performance.
The first Windows version of PHP3.0.17, released on October 20, 2000, started with a thread-safe version, because unlike the Linux/unix system, which works in a multi-process manner, Windows systems work in a multi-threaded way. It is very slow to run PHP as CGI under IIS, because the CGI pattern is built on a multi-process basis, not multithreaded. In general, we will configure PHP to run in ISAPI way, ISAPI is multi-threaded way, so much faster. There is a problem, however, that many commonly used PHP extensions are developed with Linux/unix's multi-process thinking, which can be faulted when running in ISAPI mode. Therefore, the CGI mode under IIS is the safest way to run PHP, but the CGI mode requires reloading and uninstalling the entire PHP environment for each HTTP request, which consumes a huge amount.
To take into account the efficiency and security of PHP under IIS, Microsoft has given the fastcgi solution. FastCGI can allow the PHP process to be reused instead of every new request to re-open a process. FastCGI can also allow several processes to execute simultaneously. This solves the problem that the CGI process pattern consumes too much, and the CGI process pattern does not have the advantage of the thread security problem.
Therefore, if you are using ISAPI to run PHP, you must use the thread safe version, while running PHP in fastcgi mode, there is no need to use thread security, with none thread safe (NTS, non-thread-safe) Version to better improve efficiency.
64-bit and 32-bit
Your system is 64-bit on the 64-bit, 32-bit choice 32-bit, do not explain, letter brother.