PHP5.3中关于VC9和VC6以及Thread Safe和Non Thread Safe版本选择的问题

转自:http://www.htmer.com/article/716.htm

最近在PHP官网上看到又有新版的PHP下载了,于是上去找找For Windows的版本,可是一看确傻眼了,一共给了四个版本,VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好PHP官网提供下载的地方左边有个英文choose我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先。

一、如何选择PHP5.3的VC9版本和VC6版本

VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本。

VC9版本是使用Visual Studio 2008编译器编译的,如果你的PHP是用IIS来架设的,那你就选择VC9版本。

二、如何选择PHP5.3的Thread Safe和Non Thread Safe版本

    先从字面意思上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。

再来看PHP的两种执行方式:ISAPI和FastCGI。

ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;

而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。

时间: 2024-08-06 03:44:38

PHP5.3中关于VC9和VC6以及Thread Safe和Non Thread Safe版本选择的问题的相关文章

【PHP发展史】PHP5.2 到 PHP5.6 中新增的功能详解

截至目前(2014.2), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护的 PHP5.2, 其余的一半用户在使用 PHP5.3. 因为 PHP 那“集百家之长”的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣. 本文将会介绍自 PHP5.2 起,直至 PHP5.6 中增加的新特征. PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间

Yii2.0在PHP5.4中的request兼容解决

在PHP5.5中,也许你会在官方文档上看到是这么写的 Yii::$app->request->post('name') 在PHP5.5的版本中不会出现任何错误,Yii2.0是使用的PHP5.4以上的版本,如果是PHP5.4的版本那么会出现  ajaxOption  的错误,那么怎么解决呢? $request = Yii::$app->request; $name = $request ->post('name'); 这样写可以兼容PHP5.4,避免 上述错误.

错误: -source 1.6 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)

今天晚上在AS上运行校长项目时,报错如下: Error:(71, 35) 错误: -source 1.6 中不支持 diamond 运算符(请使用 -source 7 或更高版本以启用 diamond 运算符) 这个错误对应程序里的代码是: 一般正确的写法是在声明的时候指定类型,也就是: List<PublicBlogListBean>  _hotDatas = new ArrayList<PublicBlogListBean>(); 但是在JDK 1.7里新增了一个新特性: 增强

转发:maven打包时始终出现以下提示:-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)

maven打包时始终出现以下提示: 1.-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)List<User> userList= new ArrayList<User>(); 2.-source 1.3 中不支持注释(请使用 -source 5 或更高版本以启用注释)@WebService(endpointInterface = "com.webservice.service.LoadService") 而用命令mvn -

Ubuntu 16.04 LTS软件包管理基本操作使用APT简化命令行下面我们列出 Ubuntu 16.04 LTS 中使用 ATP 命令与老版本 Ubuntu 中软件包管理的用法对比: Ubuntu 16.04 LTS 老版本Ubuntu apt install 包名 替代 apt-get install 包名 apt remove 包名 替代 apt-get remove 包名 apt se

前文 Ubuntu 16.04 新特性中我们已经介绍过,随着 Ubuntu 16.04 LTS 的发布,Ubuntu 的软件包管理命令也发生了变化,新系统采用了 Debian 项目中所使用的 APT(Advanced Package Tool)来完成各种的不同的任务,ATP 命令全面取代了我们之前在 Linux 软件包管理基本操作入门中所介绍的 apt-get.apt-cache 等功能. ATP 在创建之初便是为了解决大量软件包管理所遇到的问题,希望结束类似 Linux 早期系统依赖的一大弊病

转 在子线程中new Handler报错--Can&#39;t create handler inside thread that has not called Looper.prepare()

在子线程中new一个Handler为什么会报以下错误? java.lang.RuntimeException:  Can't create handler inside thread that has not called Looper.prepare()  这是因为Handler对象与其调用者在同一线程中,如果在Handler中设置了延时操作,则调用线程也会堵塞.每个Handler对象都会绑定一个Looper对象,每个Looper对象对应一个消息队列(MessageQueue).如果在创建Ha

IDEA java:-source 1.5中不支持diamond运算符,请使用-source7或更高版本以启动diamond运算符

IDEA java:-source 1.5中不支持diamond运算符,请使用-source7或更高版本以启动diamond运算符 产生这个问题的原因是,project structure中对于JDK版本的设置和配置环境的时候选择的JDK版本不兼容. 所以修改方法为: file-project structure 将Language level修改成7以上的就可以. 原文地址:https://www.cnblogs.com/wobushitiegan/p/12254886.html

PHP关于VC11,VC9,VC6以及Thread Safe和Non Thread Safe版本选择的问题

现在PHP官网上下载PHP安装包都有VC11或VC9的字样,这是什么含义,我们应该下载哪种安装包更好呢? 其实PHP官网给出了答案: VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本.(现在PHP已经没有VC6了). VC9意思就是该版本PHP是用VisualStudio2008编译的,而VC11则是用VisualStudio2012编译的. 如果你下载的是VC9版本的,就需要先安VisualC++Redistributab

PHP5.3中 in_array()的一个坑

因排查问题,发现目前生产环境的PHP版本5.3中有这个问题: //php5.3 echo PHP_INT_MAX; $str = "114100007160061630632"; $arr = array("114100007160061630631"); var_dump(in_array($str,$arr)); echo 'PHP:' .phpversion(); exit; 对于纯数字的非严格比较,因超出Int最大值,5.3中给出的是结果是 true. 5.