windows下php线程安全与⾮线程安全的版本选择
Windows下的PHP版本分两种:线程安全版本与⾮线程安全版本。
要论两者的区别,详细论说起来⽐较⿇烦,从使⽤者的⾓度,记住什么时候⽤哪种版本的区别就可以了吧:
1、windows + IIS + FastCGI :使⽤⾮线程安全版本。
以FastCGI⽅式安装PHP时,PHP拥有独⽴的进程,并且FastCGI是单⼀线程的,不存在多个线程之间可能引发的相互⼲扰(这种⼲扰通常都是由于全局变量和静态变量导致的)。由于省去了线程安全的检查,因此使⽤FastCGI⽅式⽐ISAPI⽅式的效率更⾼⼀些。
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所制定的全部规范。
php支持多线程吗5、windows + Apache + PHP(FastCGI) :使⽤⾮线程安全版本。
如果你要在Apache中以FastCGI⽅式使⽤PHP,则同在IIS中使⽤FastCGI的PHP的情况⼀样,你应该使⽤PHP的⾮线程安全的版本。原因是在Apache中以FastCGI⽅式安装PHP时,PHP拥有独⽴的进程,并且FastCGI是单⼀线程的,故应使⽤PHP的⾮线程安全版本以提⾼性能。
以上资料总结相关资料,分条明细,供选择。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论