PHP - FastCGI - Http Error 500.0 - 内部服务器错误

时间:2017-01-03 19:44:31

标签: php iis logging fastcgi http-status-code-500

我目前正在使用IIS服务器并尝试访问index.php文件。

要使IIS识别php文件,因为它默认情况下不会这样做,如果你尝试访问 * .php 链接,通常会得到错误404;所以为了解决这个问题,我找到了这个解决方案并应用它:

GLOBAL FASTCGI HANDLER MAPPING FOR PHP

  

解决方案所需的 php-cgi.exe 文件已作为压缩文件从此页面下载为 VC14 x64 线程安全:

窗口。 PHP。 net / download(将链接分开,因为它不允许我放置超过2个链接)

php文件的代码是这个,它是一个简单的但我不知道它是否可能是500.0错误的原因,我试过删除$psDIR中的引号但是它没用,所以我把它们放回去了 还使用 ini_set('display_errors',1); 行检查错误或故障,但它从未显示任何内容(我希望它在Web浏览器中显示某些内容,不知道是否有我在哪里应该期望错误显示出现,但我期待它在那里)。所以这是我的代码:

<?php
$psPath = "powershell.exe";
$psDIR = "C:\\Users\\ovman\\workspace\\TestingPowerShellPlugIn\\src\\";
$psScript = "Test1.ps1";
$runScript = $psDIR. $psScript;
$runCMD = $psPath." ".$runScript." 2>&1";

echo "\$psPath  $psPath <br>";
echo "\$psDIR  $psDIR <br>";
echo "\$psScript  $psScript <br>";
echo "\$runScript  $runScript <br>";
echo "\$runCMD   $runCMD  <br>";

exec( $runCMD,$out,$ret);

echo "<pre>";
print_r($out);
print_r($ret);
echo "</pre>";

ini_set('display_errors', 1);
?>

当我尝试从远程计算机访问它时,它只是说内部错误500。

当我通过localhost服务器访问它时,我得到了这个回复:

Http Error 500.0 - internal server error

我也开始检查IIS日志,这是在最后一个中写的(我试图多次访问该页面,所以它看起来像这样,我是新手,所以我真的不明白它在那里说,但希望它有用):

Software: Microsoft Internet Information Services 8.5
Version: 1.0
Date: 2017-01-03 17:38:00
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
2017-01-03 17:38:00 192.168.1.73 GET /index.php - 443 - 192.168.1.125 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 267 156
2017-01-03 17:41:07 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 267 4
2017-01-03 17:41:29 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 267 13
2017-01-03 17:41:29 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 267 12
2017-01-03 17:41:30 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 267 5
2017-01-03 17:41:31 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 267 4
2017-01-03 17:41:31 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 267 2
2017-01-03 17:41:31 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 267 7
2017-01-03 17:41:31 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 267 3
2017-01-03 17:41:32 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 267 2
2017-01-03 17:41:32 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 267 3
2017-01-03 17:41:32 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 2147500037 4
2017-01-03 17:41:32 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 2147500037 2
2017-01-03 17:41:32 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 2147500037 16
2017-01-03 17:41:32 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 2147500037 2
2017-01-03 17:41:33 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 2147500037 8
2017-01-03 17:41:34 ::1 GET /index.php - 80 - ::1 Mozilla/5.0+(Windows+NT+6.3;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 500 0 2147500037 14

编辑:

我知道它不是Powershell权限,因为我直接运行(.ps1)powershell文件并且运行没有问题。我将执行策略设置为Unrestricted,并且还执行了一个java程序来检查我是否可以运行该文件(它类似于我的index.php代码)并且它执行文件没有任何问题。

新编辑:

显然错误日志不能很好地工作,因为FastCGI不会将错误返回到调试,这就是为什么我创建了一个具有任何人编辑权限的新文件夹,设置php可以显示的新日志文件错误,添加

log_errors = On
error_reporting = E_ALL
error_reporting(E_ALL)

index.php代码中的最后一行,但未获取日志。我知道他们应该在某个地方,我也用过

error_log = syslog

并且还使用了变体

error_log = C:\...

但都没有奏效。 仍然检查其他帖子,知道我怎么能找到日志,知道发生了什么,并纠正错误。

0 个答案:

没有答案