【问题标题】:500 internal server error after php file x second running, how to understand reasonphp 文件 x 秒运行后出现 500 内部服务器错误,如何理解原因
【发布时间】:2013-07-01 09:43:14
【问题描述】:

我有共享主机。

我有一些 php 代码,运行大约 40 秒后,返回 500 internal server error

这是phpinfo()的信息:

Directive          | Local Value | Master Value
-------------------------------------------------- 
max_execution_time | 0           | 120
-------------------------------------------------- 
memory_limit       | 16384M      | 16384M

当我查看错误日志文件时(在 cPanel,Logs 部分 Error log 文件),没有任何信息,为什么会发生内部服务器错误,(还有其他日志)。

那么,什么可能导致这个错误?如何理解理性?有没有可能不联系主机提供商?

【问题讨论】:

  • 您的网络服务器也可能有响应请求的时间限制
  • phpinfo() 中的 error_reporting 值是什么意思?
  • 可能还有suhosin 时间和资源限制。但看起来你的脚本中有一个递归或永无止境的循环。你能提供更多的解释和信息吗?
  • @DanFromGermany -- 递归脚本会产生一个“致命错误”,并显示“已达到最大函数嵌套级别 '100'”。
  • 此外,如果服务器花费的时间太长(在永无止境的循环中),它不会产生 500 错误,而是会产生“无回复”错误。

标签: php excel apache error-log


【解决方案1】:

通常错误 500 是由 HTTPD 服务器的错误配置触发的,如果您有 .htaccess 请仔细检查它,或者您可以将您的 php 代码粘贴到此处,以便我们确定此问题...

【讨论】:

  • .htaccess 的错误配置会立即产生 500 错误,它不会花费时间来运行和加载。
  • 它也适用于该文件夹中的每个 URL。
  • 除非有针对特定文件的重写规则...如果 htaccess 和此 php 文件位于特定文件夹中,将具有相同的结果。
【解决方案2】:

如果没有实际看到代码,很难判断,但似乎服务器无法正确处理内存泄漏或堆栈溢出。首先,尝试启用脚本中的所有错误报告:

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

【讨论】:

  • 我正在尝试但结果相同,只是返回典型的500 internal server error 消息。
  • 尝试通过逐步注释掉部分脚本来进行本地化。然后把有问题的部分放在这里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 1970-01-01
  • 2013-01-10
  • 2016-02-19
  • 2015-05-13
  • 2019-07-19
  • 1970-01-01
相关资源
最近更新 更多