我使用的是window2012的服务器。
在IIS+FastCGI中配置PHP后,如果php源文件中存在错误,则不论是什么错误,FastCGI都会返回
内部服务器错误500的信息,这给程序调试带来了麻烦。
解决这个问题的办法如下:
1.PHP
首先打开PHP的配置文件php.ini,并做如下配置修改:
log_errors = On
html_errors = On
display_errors = On
fastcgi.logging = 0
error_reporting = E_ALL & ~E_NOTICE
可根据自己需求修改
extension=php_curl.dll 开启CURL模式
extension=php_openssl.dll 开启Openssl模式
extension=php_pdo_mysql.dll 开启数据库事务处理
extension_dir = "C:\php\ext" ; 设置php模块路径
date.timezone = PRC/ “Asia/Shanghai” ;设置时区为中国时区
short_open_tag = On ; php支持短标签 可选
cgi.force_redirect = 0 ; 开启以CGI方式运行php
fastcgi.impersonate = 1 ; FastCGI相关设置
cgi.rfc2616_headers = 1 ; 为什么要改这一项暂不清楚
cgi.fix_pathinfo = 0 ; 将1改为0,为了防止 FastCGI解析漏洞
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED ;
将错误提醒修改为标准模式
2.Web网站
在网站的根目录下面新建一个web.config文件
添加如下代码:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5"/>
<httpRuntime targetFramework="4.5"/>
</system.web>
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough"></httpErrors>
</system.webServer>
</configuration>
3.运行cmd进入该目录,执行 PHP 时结果弹出窗口提示:无法启动此程序,因为计算机中丢失 VCRUNTIME140.dll。
Windows下运行php7需要Visual C++Redistributable 2015而之前的版本不需要那么高的,最新版的Apache可能也需要这个组件,这个组件是运行Visual Studio 2015所建立的C++应用的必要组件,安装一下即可解决环境问题,可以直接去微软官网下载安装程序。
有64位版和32位版,根据计算机配置进行下载,下面是下载链接:
如果还是有问题,你好好应该检查一下文件的权限或者路径问题!
希望可以帮到你!