先描述一下大前提:
服务器使用的是 windows server 2003 + iis6 + mysql + php[isapi模式] 进行配置的,并且站点上有13个虚拟站点,其中 4个站点为纯php脚本站点,其他是asp或者 asp.net 站点,所以服务器并不是那么纯净。
现在问题是,
在这4个php站点中,一个是dzx!2.5搭建的社区系统(a),一个是使用jishigou搭建的微博平台(b),一个是使用ucenter搭建的用户中心(c),最后一个位自己写的程序(d)。
以上a、b、c、d创建站点时,均自有程序应用地址池分别对应为:a1,b1,c1,d1;
在流量和ip均为发生大变动的情况下,站点a的a1应用地址池总是无故假死,但其他站点b、c、d都可正常访问,需要手动回收和释放当前a1,甚至都无法正常启动world wide web publishing service服务。登录服务器上看,总会弹出这个提示(如下图):
以上错误信息均在php + iis + isapi模式下运行;
倘若,更换php的运行模式为fastcgi,则不会出现以上情况,但是fastcgi的线程数总会提示满,于是需要开启更大的线程以此解决。
最后,站点a使用的dzx!2.5为原生系统,前端并未修改,修改的为后台。
回复内容: 先描述一下大前提:
服务器使用的是 windows server 2003 + iis6 + mysql + php[isapi模式] 进行配置的,并且站点上有13个虚拟站点,其中 4个站点为纯php脚本站点,其他是asp或者 asp.net 站点,所以服务器并不是那么纯净。
现在问题是,
在这4个php站点中,一个是dzx!2.5搭建的社区系统(a),一个是使用jishigou搭建的微博平台(b),一个是使用ucenter搭建的用户中心(c),最后一个位自己写的程序(d)。
以上a、b、c、d创建站点时,均自有程序应用地址池分别对应为:a1,b1,c1,d1;
在流量和ip均为发生大变动的情况下,站点a的a1应用地址池总是无故假死,但其他站点b、c、d都可正常访问,需要手动回收和释放当前a1,甚至都无法正常启动world wide web publishing service服务。登录服务器上看,总会弹出这个提示(如下图):
以上错误信息均在php + iis + isapi模式下运行;
倘若,更换php的运行模式为fastcgi,则不会出现以上情况,但是fastcgi的线程数总会提示满,于是需要开启更大的线程以此解决。
最后,站点a使用的dzx!2.5为原生系统,前端并未修改,修改的为后台。
不建议用isapi方式,建议使用 http://www.iis.net/download/fastcgi
c:\windows\system32\inetsrv\fcgiext.ini内容仅供参考
[types]php=php[php]exepath=d:\php\php-cgi.exeinstancemaxrequests=10000environmentvars=php_fcgi_max_requests:10000
php.ini中几个关键点仅供参考
output_buffering = oncgi.force_redirect = 0cgi.fix_pathinfo = 1fastcgi.impersonate = 1
php.ini中的安全考虑
disable_functions = system,passthru,shell_exec,exec,popen,proc_openenable_dl = off
php.ini中尽量设置独立的临时目录等
upload_tmp_dir = d:/tmp/uploadtemp/session.save_path = d:/tmp/sessiondata/date.timezone = etc/gmt-8 ; gmt+8mbstring.language = neutral ; set default language to neutral(utf-8) (default)mbstring.internal_encoding = utf-8 ; set internal encoding to utf-8
建议在windows平台使用线程安全的php,建议所有php站点使用同一个程序应用池。
如果有可能,别在windows平台跑php。