热搜:NVER node 开发 php

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

2024-09-13 18:40:01
问个理论类的问题,现在有些混乱了(看了很多文章)

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 正式发行以后再做选择比较好