php 是一个很不错的脚本语言,以下是说明关于问题的配置部分,以及解决方法
现象
系统使用lls 运行php,基于cgi 模式,使用webpi模式部署,系统的现象是运行越来越慢,通过
浏览器看到的php 应用首页请求的TTFB在10多秒,而且对于依赖其他的服务的(比如验证码,session 的更慢)
有问题的配置
- 参考配置(php.ini)
注意此处的关于windows emp 部分的配置,好多核心都在此处,session,log,upload temp
[WebPIChanges]
error_log=C:WindowstempPHP53_errors.log
upload_tmp_dir=C:Windowstemp
session.save_path=C:Windowstemp
cgi.force_redirect=0
cgi.fix_pathinfo=1
fastcgi.impersonate=1
fastcgi.logging=0
max_execution_time=1800
date.timezone=Asia/Brunei
extension_dir="C:Program Files (x86)PHPv5.3ext"
问题说明
核心就出在Windows emp 的配置路径了,因为windows 操作系统好多临时东西都是在此目录的,随着系统运行时间越长
此文件夹的临时文件也越多,明显造成了文件读取很慢(同时包含了写入,session,以及upload temp 属于典型的写入操作)
而且还有一个问题就是log 文件偏大,也会严重影响系统的加载(写文件操作)
解决方法
修改php.ini 中关于log,session,upload temp 的路径,调整到其他地方,不使用默认的
- 参考配置(当然也可以直接使用iis 的php manager 进行修改)
我自己手工创建了log 以及session,还有upload 的目录
[WebPIChanges]
error_log=C:phpPHP53_errors.log
upload_tmp_dir=C:phptemp
session.save_path=C:session
cgi.force_redirect=0
cgi.fix_pathinfo=1
fastcgi.impersonate=1
fastcgi.logging=0
max_execution_time=1800
date.timezone=Asia/Brunei
extension_dir="C:Program Files (x86)PHPv5.3ext"
说明
实际上当时如果使用了windows 的性能监视器,以及其他工具也是可以协助分析的
参考资料
https://forums.iis.net/t/1238543.aspx?Feedback+for+WebPI+and+PHP+setup