HTTP 500 / 配置错误? [复制]
Posted
技术标签:
【中文标题】HTTP 500 / 配置错误? [复制]【英文标题】:HTTP 500 / Configuration Error? [duplicate] 【发布时间】:2017-01-24 21:21:53 【问题描述】:我正在运行全新安装的 Linux Mint 17.3,并按照this guide 设置 Apache、php (5.5.9)、mysql 和 PHPMyAdmin。我唯一做的另一件事是启用 mod_rewrite。
我遇到的问题是在执行应该返回警告或致命错误的 PHP 代码时,它反而返回 HTTP 错误 500。例如,以下代码可以正常工作(如预期):
<?php
// convert fahrenheit to celsius
$temp = 80;
$temp -= 32;
$temp *= 5/9;
echo $temp;
虽然我希望以下代码返回 PHP 警告/错误,但它反而返回完全无用的 HTTP 错误 500:
<?php
// convert fahrenheit to celsius
$temp = 80;
echo ($temp -= 32) *= 5/9;
发生了什么,我该如何解决这个问题?
【问题讨论】:
您可能会发现您收到警告/错误,但由于您将错误通知设置为不显示在屏幕上,因此没有显示。检查您的 apache / 错误日志,或查看如何显示 PHP 警告和错误。 @Lee 即使更改了/etc/php5/apache2/php.ini
值 error_reporting = E_ALL
(显示所有错误、警告和通知),它仍然给我一个 HTTP 500 错误。
它总是会给出 500 错误,因为这是正在发生的错误。你检查过你的日志吗?
这可能有帮助吗? ***.com/questions/2687730/…
如果你在你的php脚本中ini_set了display_errors和logs_errors,解析错误之前发生过,所以没有设置。尝试将设置放入 apache 配置中。
【参考方案1】:
你能检查你的 apache 错误日志吗,我相信他们会准确地告诉你 500 错误是什么。
您还可以检查 apache config/s 中的错误报告,以确保错误设置为正确报告
【讨论】:
从技术上讲,这应该是评论而不是答案。 @Lee:由于回购,他无法发表评论..【参考方案2】:当然,正如 cmets 所说,您将/应该在日志中发现错误,指出您的代码中 *=
部分的解析错误。
原因如下
代码中的($temp -= 32)
部分没有问题,因为值80-32
被设置回$temp
变量。
但是,*= 5/9
没有设置回变量,而是设置为 ($temp -= 32)
的结果,这只是一个标量值,这就是你有错误的原因。
只需使用不带=
符号的echo
结果:
回声 ($temp -= 32) * 5/9;
【讨论】:
我不是在问如何修复 PHP 错误。 @mistermartin 我的错。然后检查我的 cmets。以上是关于HTTP 500 / 配置错误? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
当http错误500.19或隐藏配置源时如何重定向到错误页面
HTTP 错误 500.19 和错误代码:配置 IIS 服务器时出现 0x80070021