8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何让 PHP 显示错误而不是给出 500 内部服务器错误

Anatolii Chub 2月前

66 0

以前从未发生过这种情况。通常它会显示错误,但现在它只给我一个 500 内部服务器错误。当然,以前当它显示错误时,它是不同的服务器。现在我...

以前从未发生过这种情况。通常它会显示错误,但现在它只给我一个 500 内部服务器错误。当然,以前当它显示错误时,它指的是不同的服务器。现在我在一台新服务器上(我有完全的 root 权限,所以如果我需要在 php.ini 的某个地方配置它,我可以。)或者可能是 Apache 出了问题?

我一直忍受着这个问题,只是将文件传输到我的其他服务器并在那里运行它来查找错误,但这太繁琐了。有办法解决这个问题吗?

帖子版权声明 1、本帖标题:如何让 PHP 显示错误而不是给出 500 内部服务器错误
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Anatolii Chub在本站《forms》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 这听起来像是 Apache 的问题,而不是 PHP 的问题。Apache 每次出现配置问题(例如 .htaccess 中的语法错误)时都会抛出 500。检查 Apache 错误日志以查找错误消息。

  • 检查 error_reporting , display_errors 中的 display_startup_errors php.ini 。它们应该分别设置为 E_ALL "On" (尽管您不应该 display_errors 在生产服务器上使用,因此 log_errors 在部署时请禁用它并使用)。您还可以 display_startup_errors 在脚本的最开始更改这些设置(除了),以便在运行时设置它们(尽管您可能无法通过这种方式捕获所有错误):

    error_reporting(E_ALL);
    ini_set('display_errors', 'On');
    

    此后,重新启动服务器。

  • 我们如何关闭 display_errors,但让 PHP 显示 200 或 404 而不是 500?

  • 不确定是否是在 2010 年,但在 2014 年您不需要重新启动服务器(除非使用像 APC 这样的操作码缓存)。

  • BdR 2月前 0 只看Ta
    引用 6

    如果您无法修改 php.ini,则可以添加带有 php_flag display_errors 1 的 .htaccess 文件

  • 使用 php -l <filename> (即“L”)输出可能导致 PHP 抛出状态 500 错误的语法错误。它将输出类似以下内容的内容:

    PHP Parse error: syntax error, unexpected '}' in <filename> on line 18

  • 这真的帮了我大忙!跟踪我的错误日志没有产生任何结果,但这个 gem 完美地工作并显示了我的语法错误和行号。正在调试一个类文件。谢谢!

  • 在 Windows 上,我安装了 Xammp,这样我就可以在机器上使用 php.exe 来执行此操作

  • 值得注意的是,如果您的错误是由于 .htaccess 造成的,例如缺少 rewrite_module,您仍然会看到 500 内部服务器错误。

  • 我实际上是在 apache 上缺少一个模块。我通过查看错误日志找到了答案(ubuntu 的默认日志是 /var/log/apache2/error.log)

  • 请仔细检查

    display_errors
    

    或者

    error_reporting
    

    在 ini 文件的其他地方处于活动状态(不是注释)。

    升级到 Kubuntu 16.04 后,我的开发服务器拒绝显示错误 - 我多次检查了 php.ini ... 发现在我的下面大约 100 行有一个 diplay_errors = off;

    display_errors = on;
    

    所以请记住最后一个才是最重要的!

  • 尽量不要去

    MAMP > conf > [your PHP version] > php.ini
    

    MAMP > bin > php > [your PHP version] > conf > php.ini
    

    并在那里进行更改,它对我有用......

  • 启用 PHP 代码中的错误显示对我来说不起作用。就我而言,使用 NGINX 和 PHP-FMP,我使用 grep 。例如,我知道文件名 mycode.php 导致错误 500,但不知道哪一行。从控制台,我使用这个:

    /var/log/php-fpm# cat www-error.log | grep mycode.php
    

    我得到了输出:

    [04-Apr-2016 06:58:27] PHP Parse error:  syntax error, unexpected ';' in /var/www/html/system/mycode.php on line 1458
    

    这可以帮助我找到拼写错误的那一行。

  • meow 2月前 0 只看Ta
    引用 15

    如果其他方法都失败了,请尝试移动(即在 bash 中)所有文件和目录\'远离\'然后将它们逐一添加回来。

    我刚刚发现我的 .htaccess 文件引用了一个不存在的 .htpasswd 文件。(#silly)

返回
作者最近主题: