Home  >  Article  >  Backend Development  >  问个理论类的问题,现在有些混乱了(看了很多文章)

问个理论类的问题,现在有些混乱了(看了很多文章)

WBOY
WBOYOriginal
2016-06-23 14:11:31716browse

1.PHP版本,现在有2个 

    1)VC9 x86 Non Thread Safe (2013-May-08 22:51:31)
   
    2)VC9 x86 Thread Safe (2013-May-08 22:51:34)

    一个非线程安全,一个线程安全;

2.PHP在服务器apache的执行方式fastCGI/模块化,(我一直用的apache)目前最新本版的Apache2.4.4 win64

    看了不少文章后,得出结论:以fastCGI方式执行最优 (不知道正确与否)

    据说:fastCGI是单线程执行,所以应该使用 NTS 非线程安全版本的PHP

    同时官方原话:
    

      IIS    If you are using PHP with IIS you should use the Non-Thread Safe (NTS) versions of PHP.    


现在问题来了:

     我要是的服务器肯定是 Apache2.4.4 win64  (目前最新的)

     如果配置以fastCGI方式执行PHP,我该选择 非线程安全(NTS)还是 线程安全(TS)?

     apache2.4.4 win64 配置fastCGI 怎么弄?有没有什么检查办法,查看apache究竟是什么方式(模块化还是fastCGI)执行了php

     比较小白,求理论清晰的给予帮助


回复讨论(解决方案)

有写事实你需要注意:
目前 php 并没有发行 win64 的版本
下目前发行的 x86 版本中并没有对 Apache2.4.4 的支持

fastCGI 是 CGI 的扩充
fastCGI 是一个应用程序池,他将多个 CGI 进程包裹起来进行管理

以 CGI 方式安装的 php 从 phpinfo 中看到的就是 fastCGI
具体的的配制方法,可以看一下包中的 install.txt 文件
我习惯模块方式,就不说 CGI 的配置方法了。以免误导

目前 fastCGI 有了很大改进,运行效率据说可以和模块方式媲美了
另外,在 IIS 中已经不再支持模块(ISAPI)方式了,只支持 fastCGI 方式

php 没有64为的我知道,以前在win下 用apache 运行php 都是VC6的老版本,但是现在有基于VC10的apache 了

所以用最新的PHP版本在apache2.4.4下 是支持的

php 官方:


我主要还是想知道:
apache如果配置以fastCGI方式执行PHP,我该选择 非线程安全(NTS)还是 线程安全(TS)?

我是说 php 发行版本有包含对 Apache2.4.4 的支持!
你需要的话需到 apache 官网寻求支持

模块方式必须选线程安全的,fastCGI方式无所谓

那apache 是模块方式好 还是fastCGI方式好

如果是fastCGI方式好,是不是php选nts 比 ts 更好好些

我以为 window 下还是模块方式可靠些,微软的 fastCGI 服务因为是这两年才实用化的,毛病比较多。远不如 linux 下的 fastCGI

待 php 5.5 正式发行以后再做选择比较好

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn