失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > windows下php的版本如何选择?

windows下php的版本如何选择?

时间:2023-05-07 23:05:24

相关推荐

windows下php的版本如何选择?

前言:

在windows 在开发PHP,其实还是占绝大数的,因为其方便、快速,且成本更低,而且由于windows上面的其他与php开发相关的软件更多,所以,我们也基本是在windows在开发好,再更新到线上的Linux服务器上。那么现在一个问题来了。windows版本巨多,什么5.6啊,5.5啊,更奇怪的是他还分32位的还是64位的。最最奇葩的是它还分Non Thread Safe 和 Thread Safe 的,那么现在问题来了。选择php到底哪家强?

我们将分几点来讨论:

PHP的迭代版本选哪个?

截止现在,官网上( /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 或者 ,那不好意思,你只能安装5.4 或者5.3 ,因为5.5已经不支持xp 和了。如果你是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 编译的。v11是 用Visual Studio 编译的。

到底怎么选呢?好。说清楚点。

1. 如果你的电脑是xp 或者 ,对不起,它们不支持 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的了?可以,查看我很久写的一篇博客: /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 文件,写入以下代码:

<?phpphpinfo();

好。打开浏览器,访问一下。跟着我一个个查询:

1. PHP迭代版本号是多少: 只要你眼睛没瞎,打开网页的第一行大字就是php的版本号,我的是PHP Version 5.3.13 2.编译PHP的版本是什么: 页面Ctrl + F 搜索Compiler关键字,一般在表格的第3行,我的是MSVC9 (Visual C++ ),说明我的是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的版本如何选择?》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。