IIS服务器环境下某路径下所有PHP接口无法运行报500.19错误

Posted Cinlap

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS服务器环境下某路径下所有PHP接口无法运行报500.19错误相关的知识,希望对你有一定的参考价值。

IIS服务器环境下某路径(文件夹)下所有php接口无法运行报500.19错误

环境:IIS8.5 + php7.2.1
错误描述:某目录下(如 d:webA)所有php接口文档运行错误,接口测试工具返回空内容,浏览器提示500错误

解决方式:

  1. 开启PHP和IIS错误日志;
  2. 查看IIS日志,发现线索
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
2018-07-31 09:33:36 172.0.0.0 GET /xxxx/xxx.php - 443 - 100.0.0.0 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(Khtml,+like+Gecko)+Chrome/64.0.3282.140+Safari/537.36+Edge/17.17134 - 500 19 183 15
  1. 最主要是字段帮了忙 500 19代表500.19错误,经查是web服务器内部运行错误
  2. 仔细查看IIS各项设置并回忆可能的改动,发现 A 目录属于“新增”目录,里边所有文件是从之前测试服务器上复制过来,其原属于测试服务器上一个独立“网站”配置,因此 web.config 文件中包含了对".txt"的请求筛选,即不允许访问".txt"的文件。当 A 目录整体复制到当前服务器时,保存到默认“网站”下的一个虚拟目录,而默认网站也设置了相同的请求筛选,导致配置冲突,在对 A 进行访问时整体路径都出错。
  3. 打开 A 下的配置文件,去掉所有和所属“网站”冲突的配置,具体为
<security>
            <requestFiltering>
                <fileExtensions>
                    <add fileExtension=".txt" allowed="false" />
                </fileExtensions>
            </requestFiltering>
        </security>

并应用,重启网站,解决

以上是关于IIS服务器环境下某路径下所有PHP接口无法运行报500.19错误的主要内容,如果未能解决你的问题,请参考以下文章

thinkcmf 上传服务器报500错误 提示 css样式和图片无法正常获取显示?

iis6手工创建网站后无法运行php脚本

IIS7下php运行环境的搭建(巧妙利用phpmanger来搭建php)

我iis+php的环境不能以“w”的方式打开文件,只能以只读“r”的方式打开文件,需要怎么配置呢才行呢?

什么情况下IIS服务需要重启

iis配置了php环境,发布网站无法访问