UPUPW安装PHP扩展组件的相关说明


编辑: upupw 发布时间: 2013-07-03 15:43:31 来源: UPUPW绿色服务器平台 热度: 13934

UPUPW PHP环境集成包在PHP组件的自由扩展方面是没有任何限制的,UPUPW官方所加载的PHP组件也都是经过windows全平台测试过的比较稳定的组件。

比如当今流行的XCache、APC、eAccelerator、Memcache、Zend GuardLoader/Optimizer、Xdebug等在UPUPW 各版本中都有应用到。

为什么Apache版和Nginx版所加载的PHP扩展组件不一样呢?

这个原因主要是由于PHP的类型决定的:Apache版集成的是TS的PHP以ISAPI方式执行、Nginx版集成的是NTS的PHP以FastCGI方式执行。

TS:Thread Safe 线程安全, 执行时会进行线程Thread安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。

NTS:Non Thread Safe 非线程安全, 在执行时不进行线程Thread安全检查 

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

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

1、PHP页面解密组件Zend Optimizer只支持在TS的PHP5.2版本中使用,所以像ShopEx等程序可以选择在UPUPW Apache PHP5.2.17经典版中使用。

2、PHP页面解密组件Zend GuardLoader目前只支持NTS的PHP5.3和PHP5.4版本,所以要使用Zend GuardLoader组件可以选择UPUPW Nginx PHP5.3系列PHP5.4系列来使用。

为什么Apache版和Nginx版不同系列的PHP版本加载的PHP扩展组件也不一样呢?

UPUPW所有的PHP扩展组件都是从组件的官网或PHP官网下载的,由于upupw每次更新都是适配到PHP的最新版本很多组件都没有对应PHP版本供选择,有的组件是通用版但拿来测试并不支持现有版本的PHP,所以每次更新在PHP扩展组件上都会有调整。

自己扩展upupw集成包的PHP组件应该注意些什么?

UPUPW非常鼓励大家在现有基础上不断扩展PHP组件满足自身的需要,但是需要特别注意以下问题:

1、UPUPW每次新版本的推出基本上都把现有流行的PHP组件适配了一遍,保留下来的组件一定是完全兼容windows全平台的,没有加入进来的组件有可能是没有适当的版本或者不兼容。

2、扩展组件时需要注意PHP的版本号以及执行方式(TS/NTS)还有PHP的编译版本(vc6/vc9/vc11)

3、已知在Apache版的PHP5.3/5.4中加载ZendOptimizerPlus(zend Optimizer的开源项目zendOptimizer+)虽然能正常启动Apache并且PHP信息中也能识别zendOptimizer+但是会导致Apache在释放内存重启的过程中无法重启出现Apache假死现象,所以UPUPW从A3.1版开始弃用了ZendOptimizerPlus改用APC。

4、已知在Nginx版的PHP5.3.26/5.4.16中加载APC或eAccelerator会出现页面卡顿,phpmydamin登录窗口无法显示,内容页导航出现错位无法点击等现象,所以N3.1和N4.0均没集成这两个组件采用了XCache来加速PHP。

对于扩展UPUPW PHP组件有哪些建议?

UPUPW建议大家在用于正式的生产环境中还是用官方原版扩展的PHP集成包比较好,如果是在本地测试可以勇于尝试各种组件的集成,经过测试没有兼容问题和不稳定因素也是可以投入使用的。