前言:
在windows 在开发PHP,其实还是占绝大数的,因为其方便、快速,且成本更低,而且由于windows上面的其他与php开发相关的软件更多,所以,我们也基本是在windows在开发好,再更新到线上的Linux服务器上。那么现在一个问题来了。windows版本巨多,什么5.6啊,5.5啊,更奇怪的是他还分32位的还是64位的。最最奇葩的是它还分Non Thread Safe 和 Thread Safe 的,那么现在问题来了。选择php到底哪家强?
我们将分几点来讨论:
PHP的迭代版本选哪个?
截止现在,官网上( http://windows.php.net/download) 的PHP版本总共有4个,和主站上Linux版本是一致的。分别是:
PHP 5.6 (5.6.2)
PHP 5.5 (5.5.18)
PHP 5.4 (5.4.34)
PHP 5.3 (5.3.29)

这么多版本我们如何选择呢?不管是新安装php的还是再考虑升级php的都会陷入选择恐惧症。那怎么选呢?

我的意见是:
1.  当然是最新的稳定版本好了啊。所以5.6肯定是首选的。因为它修复了很多的漏洞,新增了很多的功能,而且也废除了很多有问题的漏洞功能。
2. 先看看你公司服务器上的php版本号是多少,再进行选择,因为5.4开始新增了很多功能,比如数组的写法。如果你这样写了。结果发到公司服务器麻痹报错了就悲剧了。所以按照公司的服务器上的版本号来。
3. 如果你的电脑还是xp 或者2003 ,那不好意思,你只能安装5.4 或者5.3 ,因为5.5已经不支持xp 和2003了。如果你是win vista或者 win7,win8 ,那您随意。
4. 如果你的代码中大量的连mysql用的是mysql扩展,而不是mysqli或者pdo,对不起,你也只能安装5.4或者5.3 。因为5.5开始,mysql扩展已经废除。 
可以参考我的另一篇博文,讲解5.2-5.6各个迭代版本的更新和改进:  PHP 自 5.2 到 5.6 中新增的功能详解
编译PHP的版本选哪个?
现在市面上存活的有V6, V9 和 v11 。反正说法各有风云,但是目前的官网v6 已经没有了。这些表示的是用Visual Studio 编辑器编译的。
6是用 Visual Studio 6 编译的。v9 是用Visual Studio 2008 编译的。v11是 用Visual Studio 2012编译的。
到底怎么选呢?好。说清楚点。
1. 如果你的电脑是xp 或者 2003,对不起,它们不支持 v11 编译的软件,也就是说php 5.5 和 5.6你都不能用了,你只能用 5.4或者5.3。安装目前官网的这4个下载,你就只能用 v9 编译的了。
2. 如果你的电脑是 vista 以上版本的,那就根据上面的“php迭代版本“进行参考选择。
PHP的Thread Safe 和 No Thread Safe选哪个?
做这个选择之前,我先把IIS 给排除在服务器的范围之内了。只讨论 apache 和 nginx
我们知道php 做web开发,是要依托于web 服务器的,web 服务器接受请求,然后再去请求php线程,php去解析出结果,再返回给浏览器。

Thread Safe :线程安全,执行时会进行线程(thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式耗尽系统资源

None-Thread Safe :就是非线程安全,在执行时不进行线程(thread)安全检查;
好,这2个明白是什么意思了之后,我们再来看我们常见的web服务器就是apache 和 nginx。
我们使用apache 作为web服务器是用的加载php模块的方式,将php作为一个子模块来用,回忆一下:
LoadModule php5_module "d:/wamp/bin/php/php5.3.13/php5apache2_2.dll"

也就是说,每一次apache接受到一个请求,都会去加载一个php5apache2_2这个dll 线程,请求过多,就会造成线程过多。所以肯定是要用 Thread Safe 版本的PHP了。

我们使用nginx 作为web服务器是用什么方式加载php的了?可以,查看我很久写的一篇博客: http://blog.csdn.net/think2me/article/details/7196404
RunHiddenConsole.exe E:/php/php-cgi.exe -b 127.0.0.1:9000  -c C:/windows/php.ini

你看,这次就不是去加载模块了,而是是启动一个exe的线程文件,所有的请求,都是这一个线程来集中处理。你说,还需不需要线程保护啊。总共就1个线程,还保护个球啊!所以肯定是用None-Thread Safe 了。

总结下:
1. 如果你是Apache作为web服务器,请用 Thread Safe 的PHP版本
2. 如果你是nginx作为web服务器, 请用None-Thread Safe 的PHP版本
PHP的x86(32位)和x64(64位)选哪个?
我觉得这是一个艺术和哲学上的问题,我不是很想深究。但是既然说了就有必要说下。
现在都是64位的天下了。你看苹果最新款的iphone 5s,iphone6 还有ipad air2 都是64位的处理器了。然后,你就要问,我是不是也要选择PHP x64的呢?
我的回答是是不一定:
1. 现在其实windows上很多的PHP的相关的插件其实还停留在32位时代,比如redis啊,memcache啊。有时候你想找个64位的适配版本很难的,难得一逼啊。所以还是用32位的PHP吧。
2. 我们在windows 上开发,其实只是单纯的开发,只要程序没bug,缓存什么都到位,运行速度到位,到时候都是要发布到Linux服务器上去运行的啊。你管PHP是32位还是64位呢?所以,用32位吧兼容。
所以我的建议是: 选择32位的!
如何查看PHP以上几点的选择各个是啥?
当然可以啊。phpinfo就是干这个事情的。随便写一个php 文件,写入以下代码:
<?php
phpinfo();

好。打开浏览器,访问一下。跟着我一个个查询:
1. PHP迭代版本号是多少: 只要你眼睛没瞎,打开网页的第一行大字就是php的版本号,我的是 PHP Version 5.3.13
2. 编译PHP的版本是什么: 页面Ctrl + F 搜索 Compiler关键字,一般在表格的第3行,我的是 MSVC9 (Visual C++ 2008),说明我的是v9
3. PHP是32位的还是64位的:页面 Ctrl + F 搜索 Architecture 关键字,一般在表格的第4行,显示为x86或者x64,则表示是32位或64位的。
4. PHP是Thread Safe 的还是 No Thread Safe : 页面搜索Thread Safety关键字,显示为enable 或者 disable。enable表示是线程保护的,表示是 PHP 是Thread Safe的,反之,则表示是No Thread Safe的。
总结
你总算搞清楚了吧。也知道自己怎么选择了吧。要是还是搞不清楚,那只能呵呵了。
还有,还是那句话,在windows平台上,我们着重还是以写代码为主,所以,如果你已经把windows平台上如何一个一个软件搭建好PHP环境已经搞过几遍了,并且熟悉如何安装了,那就不要再折腾了。直接用个集成环境就很好了,现在的集成环境用的最多的有2个,APPserv 和 wampserver。可以参考我的另一篇博文: windows 快速搭建php环境
掌声~

windows下php的版本如何选择?相关推荐

  1. Windows下Wireshark安装版本选择方式

    Windows下Wireshark安装版本选择方式 Wireshark版本分为1.X系列和2.X系列.1.X系列是早期版本,不提供中文版本.2.X系列是新版本,安装后,同时提供中文版和英文版.根据系统 ...

  2. Python3获取Windows下Chrome 90版本的Cookie值

    Python3获取Windows下Chrome 90版本的Cookie值 文章目录 Python3获取Windows下Chrome 90版本的Cookie值 前言 一.AES_GSM加密方式 二.DP ...

  3. windows下安装各个版本memcache扩展

    这篇文章主要介绍了windows下安装php5.2.,php5.3.,php5.4.*版本的memcache扩展,需要的朋友可以参考下 注:如使用集成环境成功率低,请自行配置php apache,表示 ...

  4. windows下升级nodejs版本

    使用electron+vue创建项目时提示node.js版本不能低于10,记录windows下升级nodejs方式 1.Windows下是没有n模块并不支持 "npm install -g ...

  5. windows下安装不同版本Python教程

    前言 博主也是很长一段时间没有更新文章了吧,因为最近都在忙着升级我的API管理系统,还有准备会考,时隔大概一个月,我带来了本次文章,如何在windows系统下安装多个版本Python,且各版本Pyth ...

  6. Windows下FFmpeg各版本库文件下载

    ffmpeg主要是基于linux开发,当然它也支持windows,不过并不支持visual studio系列IDE(因为它使用了大量C99特性,而vs不支持C99). 要想在windows上使用 一可 ...

  7. TensorFlow:Windows下使用TensorFlow-Python版本

    原文链接:Win10X64下安装使用TensorFlow 安装TensorFlow 由于Google那帮人已经把 TensorFlow 打成了一个 pip 安装包,所以现在可以用正常安装包的方式安装 ...

  8. windows server 2008 R2 版本的选择

    微软在将windows server操作系统更新到windows server 2008 R2后,该版本就不再提供对x86架构的支持了,只支持x64和Itanium 64位两种64位的架构. wind ...

  9. windows下实现node版本的切换

    Node版本的切换 1.实现node版本的切换,首先要下载nvm 2.nvm的下载地址: (推荐使用nvm-setup.zip)[地址]:https://github.com/coreybutler/ ...

最新文章

  1. 26 Java GC算法 垃圾收集器、标记 -清除算法、复制算法、标记-压缩算法、分代收集算法
  2. zabbix安装步骤
  3. 高程(三)笔记---- 第三章
  4. 理论基础 —— 二叉树
  5. python读取data_Python批处理数据读取方法的细节:dataloader,Pytorch,批量,详解,DataLoader...
  6. SPH(光滑粒子流体动力学)流体模拟实现二:SPH算法(1)-数学原理
  7. Kickstart文件的编写
  8. 比较从 vSphere 5.x 到 vSphere 6.5 的各个版本
  9. 腾讯智慧零售数字增长峰会:私域新生态,增长新格局
  10. Linux修改文件时候出现崩溃,产生了一个.swap交换文件,如何修复?
  11. 用c语言编写linux守护进程
  12. 2020年能够实现强AI吗?GPT-3 是强AI吗?
  13. 2021年 全网最细大数据学习笔记(一):初识 Hadoop
  14. 微服务架构总结性介绍 (深度好文)
  15. 华宇(大连)一面-20190620
  16. mysql解析json_mysql解析简单json字符串
  17. 微信小程序云开发如何实现微信支付,业务逻辑又怎样才算可靠
  18. 天津大学大作业管理概论答案
  19. 白噪声的分析及其matlab实现
  20. 使用Android Studio做一个简易进制转换计算器

热门文章

  1. 分布式服务架构(一)---服务架构的进化史
  2. 一加3T viper4android,哈曼卡顿Cortana智能音箱外观/内部规格全曝光
  3. python在工业机器人上的应用_请简述工业机器人主要应用场合
  4. php实现下雪场景,下雪的场景写一段话
  5. 计算机毕业设计asp.net的大学生交友网站(源码+系统+mysql数据库+Lw文档)
  6. python 操作psd_怎样用python实现对PSD-BPA的调用?
  7. matlab 变压器 漏感,中频变压器漏感参数解析计算方法.doc
  8. 《印制电路板(PCB)设计技术与实践》这本书真烂!!
  9. 该怎样在CAD图纸里提取点坐标?
  10. BadRabbit勒索病毒分析