前一些时间聚友曾经总结了一下Service Unavailable的原因,列出了4个方面的原因(原文见https://www.juyo.org/juyo/original/Service-Unavailable/),今天又遇到一个服务器上网站出现这个情况,朋友对照了那四种情况,均没有找到其原因,于是我上该服务器上查看。
该服务器上所有网站均出现这个现象,所以关闭其他所有站点,只开一个网站。
- 打开该网站,直接显示Service Unavailable,那就去看IIS,发现该网站所在的应用程序池被禁用;
- 手动启动该应用程序池,再打开该网站,继续提示Service Unavailable;
- 把该网站换了一个应用程序池,再打开该网站,还是提示Service Unavailable;
从上面三点来看,问题不在网站,也不在应用程序池,而在IIS本身,进入下一个阶段的排查。
- 打开“事件查看器”,先查看系统日志,里面出现了很多来自W3SVC的日志,如下图所示。
- 任意点开错误日志,显示如下图内容
- 再到应用程序日志里面查看,也是有很多的错误日志,显示如下图内容
- 任意点开错误日志,显示如下图内容
- 已经明白了错误之所在,是因为PHP的ISAPI没有加载成功造成的,再到IIS中确认一下,果然PHP的筛选器状态前是红色的向下箭头,没有加载成功,如下所示
- 一般加载不成功都是因为NTFS权限造成的,就去看一下PHP目录的NTFS权限,显示只有管理员组和系统组可以访问,如下图所示
- 添加用户组的权限到PHP目录,设置权限如下图所示。
- 设置完毕,单击“开始”——“运行”,输入iisreset重启IIS
- IIS重启完毕,再打开IIS管理器查看ISAPI筛选器状态,此时PHP已经成功加载
- 最后,在浏览器中打开网站,发现已经正常显示出来了。
Service Unavailable的第五种原因就是今天的原因了:ISAPI筛选器没有正常加载(其他四种参加https://www.juyo.org/juyo/original/Service-Unavailable/)
未经允许不得转载:聚友 » Service Unavailable第五个原因
关键是这篇转载的文章,还没转载好,图都没有转载,关键步骤全部是如图,结果却没有图。