发布于2026-07-21 阅读(0)
扫一扫,手机访问
聊到PHP版本选择,很多开发者往往会陷入选择困难症。PHP版本主要分成三支:PHP4、PHP5和PHP6。PHP4因为年代久远,对面向对象的支持基本可以忽略,现在已经很少有人用了;PHP6更是停留在概念阶段,几乎没有生产环境的应用,所以这两支就不展开说了。
真正值得关注的是PHP5。PHP5本身又分为三个梯队:5.2之前的版本、5.2.x系列和5.3.x系列。5.2之前的版本因为功能缺陷或BUG,基本不值得考虑。目前主流PHP程序对5.2.x的兼容性最好,而且这个系列的每次小版本升级都能带来安全性和稳定性的提升,所以如果要用5.2,建议直接选最新的5.2.17。但如果你的产品是自己开发、自己使用,那PHP 5.3.x在很多方面更有优势——稳定性更胜一筹,还带来了不少5.2不具备的功能,比如内置php-fpm、更完善的垃圾回收算法、命名空间的支持、sqlite3的支持等等,是部署项目时值得认真考虑的版本。
不过,光看版本号还不够。即便是同一个主版本号(比如5.3),不同编译环境下的PHP版本也有区别,尤其是在选择扩展时容易踩坑。这就引出了VC6与VC9的问题。
关于VC6和VC9,PHP官方文档其实说得很清楚。简单翻译一下:如果你用的是Apache(从apache.org下载的Apache 1或Apache 2),那就选VC6版本的PHP;如果你用的是IIS,就该选VC9版本。VC6是用Visual Studio 6编译的,VC9是用Visual Studio 2008编译的,后者在性能和稳定性上有所改进,但需要安装Microsoft 2008 C++ Runtime。特别注意:不要在Apache下使用VC9版本。另外,从PHP 5.3.6开始官方不再提供VC6版本,官方建议用Apache Lounge提供的编译版本。
再来说说TS和NTS。TS是Thread Safety(线程安全)的缩写,一般当PHP以ISAPI方式加载到IIS时才需要选这个版本;NTS则是None-Thread Safe(非线程安全),通常以FastCGI方式运行时使用,性能更好。Windows和Unix/Linux的工作方式不一样:Unix/Linux是多进程,Windows是多线程。如果IIS下用CGI方式跑PHP,速度会非常慢,因为CGI本质上是多进程模型。所以早期很多人把PHP配置成ISAPI方式,ISAPI是多线程的,快很多。但问题来了:很多常用的PHP扩展是基于Unix/Linux的多进程思想开发的,这些扩展在ISAPI下跑就容易出错,甚至搞垮IIS。因此,IIS下最安全的方式其实是CGI,但CGI每个HTTP请求都要重新加载和卸载整个PHP环境,开销巨大。微软后来推出了FastCGI方案,让PHP进程可以重复利用,不必每个新请求都重开一个进程,同时还能允许多个进程并发执行。这样一来,既解决了CGI进程模型消耗大的问题,又利用上了CGI进程模型没有线程安全问题的优势。所以结论很清楚:如果以ISAPI方式运行PHP,必须用线程安全(TS)版本;如果用FastCGI模式,就没必要做线程安全检查了,选非线程安全(NTS)版本能获得更好的效率。
怎么查看当前运行的PHP版本是VC6还是VC9?是TS还是NTS?一个很简单的办法:用phpinfo()函数。如果Thread Safety显示disabled,那就是NTS;显示enabled就是TS。在Configure Command里如果看到VC98字样,就是VC6;如果Compiler标明MSVC9(Visual C++ 2008),那就是VC9。
最后顺带讲一下Windows下比较简洁方便的PHP配置方法。网上很多教程教你把php.ini复制到Windows目录、把各种dll复制到system32下,说实话挺丑的,也容易把系统搞乱。更好的做法是这样的:
1. 下载zip版本的PHP(根据上面的知识点选对版本,比如想在WinXP下搭建Apache2+PHP5+Mysql5平台,就选VC6 x86 Thread Safe)。
2. 下载好相应的扩展,修改php.ini,添加模块映射。
3. 在环境变量的PATH里加上PHP存放的目录,注意只需要加PHP根目录,/bin和/ext不需要加。
4. 在环境变量里定义一个PHPRC变量,内容为php.ini的存放路径。
5. 配置Apache支持PHP。打开Apache的httpd.conf,在文件头部添加:Loadfile "C:/php/php5ts.dll";然后找到,在前面添加LoadModule php5_module "D:/(PHP path)/php5/php5apache2_2.dll";找到AddType application/x-compress .Z和AddType application/x-gzip .gz .tgz这两行,在后面添加AddType application/x-httpd-php .php;然后找到DirectoryIndex index.html,在后面加上index.php,变成DirectoryIndex index.html index.php。搞定。
下一篇:卸载php 安装php
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8