文章来源Lccee.com PHP是具有32bit和64bit的区别的。 32bit的php的整型数据最大最小正负2GB左右(0x7FFFFFFF) 64bit的php的整型数据最大最小正负9百多万TB左右(0x7FFFFFFFFFFFFFFF) 网站代码经常需要注意整型数据的极限值。 版本选择: 如果你的电脑/服务器是32位的, 那装x86的版本 如果是64位的, 装x64的版本 PHP线程安全和非线程安全的选择和区别。 备注:在PHP5.3以后,PHP不再有ISAPI模式,安装后也不再有php5isapi.dll这个文件。 Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分, Windows下的PHP版本分两种:线程安全版本与非线程安全版本,线程安全和非线程安全只针对windows,而 linux下没有这个区分。 那么两者区别在何处?到底应该用哪种?简单的介绍来说。 如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。 要论两者的区别,详细论说起来比较麻烦,从使用者的角度,记住什么时候用哪种版本的区别就可以了。 1、windows + IIS + FastCGI :使用非线程安全版本。 理由: 以FastCGI方式安装PHP时,PHP拥有独立的进程,并且FastCGI是单一线程的,不存在多个线程之间可能引发的相互干扰(这种干扰通常都是由于全局变量和静态变量导致的)。由于省去了线程安全的检查,因此使用FastCGI方式比ISAPI方式的效率更高一些。 Thread Safe 线程安全 Non Thread Safe 非线程安全 (官方不建议用来进行实际生产) 2、windows + IIS + ISAPI :使用线程安全版本。 理由: PHP以ISAPI方式安装时,PHP没有独立的进程,而是作为DLL被IIS加载运行的,即是依附于Web服务器进程的。当Web服务器运行在多线程模式下(IIS正是这种情况),PHP自然也就运行在多线程模式下。只要是在多线程模式下运行,就可能存在线程安全问题,因此应选择PHP的线程安全版本。 3、windows + Apache + PHP(模块) :使用线程安全版本。 理由: 如果你要在Apache中以模块方式安装PHP,则你应该使用PHP的线程安全的版本。原因是当PHP作为Apache的模块安装时,PHP没有独立的进程,而是作为模块以DLL的形式被加载到Apache中的,是随Apache的启动而启动的,而Windows下的Apache为多线程工作模式,因此PHP自然也就运行在多线程模式下。因此,这种情况下应使用PHP的线程安全版本。 4、windows + Apache + PHP(ISAPI) :使用线程安全版本。 理由: 由于以ISAPI方式来安装PHP时,PHP也没有独立的进程,也是作为模块被加载到Apache中的,因此,同样也需要使用PHP的线程安全版本。 一般不建议在Apache中以ISAPI方式来安装PHP,原因是到目前为止,Apache通过mod_isapi.so模块来实现的ISAPI功能并不完整,并未完整实现微软对ISAPI所制定的全部规范。 5、windows + Apache + PHP(FastCGI) :使用非线程安全版本。 理由: 如果你要在Apache中以FastCGI方式使用PHP,则同在IIS中使用FastCGI的PHP的情况一样,你应该使用PHP的非线程安全的版本。原因是在Apache中以FastCGI方式安装PHP时,PHP拥有独立的进程,并且FastCGI是单一线程的,故应使用PHP的非线程安全版本以提高性能。 而PHPWAMP属于CGI+模块的混合运行方式(包含了多种),所以在线程安全和非线程安全的选择上,得看phpinfo的Server API值。 大部分用户都会在phpwamp站点管理里设置站点,如果是在apache站点管理自定义php版本,建议优先选择“非线程安全”PHP版本。 |
|