【问题标题】:Internal Server Error 500 After Memcached InstallMemcached 安装后内部服务器错误 500
【发布时间】:2014-03-23 22:11:27
【问题描述】:

执行以下命令在 VPS 服务器上安装和启动 memcached 后,从 Web 浏览器访问任何文件时出现 500 内部服务器错误:

$ yum install memcached php-pecl-memcache perl-Cache-Memcached python-memcached
$ /etc/init.d/memcached start
$ service httpd graceful

每次我尝试加载文件时,我的 apache 错误日志都会显示以下错误:

Premature end of script header: <filename>

我注意到的另一件事是,我仍然能够从命令行运行 php 文件而不会产生任何错误。

在我的服务器上安装 memcached 后,我还需要做些什么以避免 500 错误吗?

【问题讨论】:

  • http 服务器的错误日志中应该有一些有用的东西。你能找到相关日志并发布相关部分吗?
  • @earino 我的 apache error_log 文件只显示错误“[Sat Feb 22 02:09:12 2014] [error] [client XXXX] Premature end of script headers: in index.php”每当我尝试通过网络浏览器访问我的网站。是否有其他文件可以提供更强大的错误报告?

标签: php python apache perl memcached


【解决方案1】:

该错误只是表示您的 index.php 中的脚本已损坏。它在错误消息之前没有发送任何 HTTP 标头。您应该检查您的脚本并查找错误,该错误发生在发送 http 标头之前。

【讨论】:

  • 我很高兴你问这个问题,因为我忘了提到在我的 memcached 安装完成后,我所有 php 脚本中的 $_SERVER['DOCUMENT_ROOT'] 变量开始显示为空并导致任何使用它失败的 require_once 调用。在我的 require_once 调用中对文档根目录进行硬编码后,从命令行运行我的文件时 php 错误消失了,但当我尝试通过 Web 浏览器访问它们时,仍然出现 500 内部服务器错误。
  • 如果不是太长,请添加您的 index.php
  • 我实际上发现在尝试访问每个文件时,无论其内容如何,​​都会收到 500 内部错误代码。例如,如果 index.php 只包含“”,我将通过从命令行运行“$ php /index.php”得到正确的输出,但我仍然得到一个 500 的内部服务器从网络浏览器请求 index.php 时出错。
  • “正确的输出”是否包含 HTTP 标头,如果不是,它也是错误的。 500 内部服务器错误消息来自网络服务器,而不是来自 php 引擎。因此,如果您认为看到内容输出就足以让您说它有效,那您就错了。所有输出都应包括诸如 Content-Type:·text/html 之类的行; charset=utf-8 或 Transfer-Encoding:·chunked 等。你看到了吗?
【解决方案2】:

我也遇到了同样的问题,没有找到解决办法。然后我从 WHM 面板升级 apache,一切都被重置并开始工作。

我知道这不是一个技术解决方案,但它可以完美运行。

【讨论】:

    猜你喜欢
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多