Php HTTP 500/配置错误?
我正在运行LinuxMint17.3的新安装,然后安装Apache、PHP(5.5.9)、MySQL和PHPMyAdmin。我做的另一件事是启用mod_重写 我遇到的问题是,当执行应该返回警告或致命错误的PHP代码时,它反而返回HTTP错误500。例如,以下代码工作正常(如预期):Php HTTP 500/配置错误?,php,apache,lamp,system-administration,Php,Apache,Lamp,System Administration,我正在运行LinuxMint17.3的新安装,然后安装Apache、PHP(5.5.9)、MySQL和PHPMyAdmin。我做的另一件事是启用mod_重写 我遇到的问题是,当执行应该返回警告或致命错误的PHP代码时,它反而返回HTTP错误500。例如,以下代码工作正常(如预期): 你能检查你的apache错误日志吗,我确信他们会准确地告诉你错误是什么 您还可以检查apache配置中的错误报告,以确保错误设置为正确报告如果您能够检查apache错误日志,我相信他们会准确地告诉您错误是什么 您还可
你能检查你的apache错误日志吗,我确信他们会准确地告诉你错误是什么
您还可以检查apache配置中的错误报告,以确保错误设置为正确报告如果您能够检查apache错误日志,我相信他们会准确地告诉您错误是什么
您还可以检查apache config/s中的错误报告,以确保错误被设置为正确报告。当然,正如评论所说,您将/应该在日志中找到错误,指出您在*=
部分的代码中存在解析错误
原因如下
代码的($temp-=32)
部分是正常的,因为值80-32
被设置回$temp
变量。
但是,*=5/9
并没有设置回变量,而是设置回仅为标量值的($temp-=32)
的结果,这就是出现错误的原因
只需在不使用=
符号的情况下使用它即可回显结果:
回声($temp-=32)*5/9
当然,正如评论所说,您将/应该在日志中发现错误,指出您在*=
部分的代码中存在解析错误
原因如下
代码的($temp-=32)
部分是正常的,因为值80-32
被设置回$temp
变量。
但是,*=5/9
并没有设置回变量,而是设置回仅为标量值的($temp-=32)
的结果,这就是出现错误的原因
只需在不使用=
符号的情况下使用它即可回显结果:
回声($temp-=32)*5/9
您可能会发现您收到了警告/错误,但它不会显示,因为您已将错误通知设置为不在屏幕上显示。检查您的apache/错误日志,或查看如何显示PHP警告和错误。@Lee即使更改了/etc/php5/apache2/PHP.ini
值error\u reporting=E\u ALL
(显示所有错误、警告和通知),它仍然会给我一个HTTP 500错误。它始终会给出一个500错误,因为这是正在发生的错误。你查过日志了吗?这有帮助吗?如果在php脚本中ini_设置display_错误并记录_错误,则解析错误会在之前发生,因此不会设置它们。尝试将设置放入apache配置中。您可能会发现收到警告/错误,但不会显示,因为您已将错误通知设置为不在屏幕上显示。检查您的apache/错误日志,或查看如何显示PHP警告和错误。@Lee即使更改了/etc/php5/apache2/PHP.ini
值error\u reporting=E\u ALL
(显示所有错误、警告和通知),它仍然会给我一个HTTP 500错误。它始终会给出一个500错误,因为这是正在发生的错误。你查过日志了吗?这有帮助吗?如果在php脚本中ini_设置display_错误并记录_错误,则解析错误会在之前发生,因此不会设置它们。尝试将设置放入apache配置中。从技术上讲,这应该是一个注释而不是答案。@Lee:由于repo,他不能评论。。从技术上讲,这应该是一个注释而不是答案。@Lee:由于repo,他不能评论。。我不是在问如何修复PHP错误。@mistermartin我的错。那么请检查我的评论。我不是在问如何修复PHP错误。@mistermartin我的错。那就看看我的评论吧。
<?php
// convert fahrenheit to celsius
$temp = 80;
$temp -= 32;
$temp *= 5/9;
echo $temp;
<?php
// convert fahrenheit to celsius
$temp = 80;
echo ($temp -= 32) *= 5/9;