正在加载中...

关闭
请选择需要拨打的号码
关闭
请根据问题类型选择QQ咨询

Discuzx网站使用阿里云虚拟主机升级以后报错Premature end of script headers

Discuzx网站使用阿里云虚拟主机升级以后报错Premature end of script headers

用户使用万网空间高级版,后升级到阿里云虚拟主机标准版,系统自动升级完毕,数据库链接也更新,结果出现访问portal.php页面报错,而/portal.php?mod=list&catid=36这类带参数的页面却可以正常访问。什么原因呢?

看页面报错是500 internal server error,但这个不是真实报错,通过阿里云工单获得了真实报错,错误内容为:

[Tue Jun 14 13:07:05 2016] [error] [client 46.161.9.23] Premature end of script headers: portal.php, referer: http://xxx.com/portal.php

查了一下中文网站,基本都不靠谱,包括阿里云给的解决方法也不对路:


1、.htaccess文件写入错误的代码

在.htaccess文件中,可能因为添入了一些与源文件冲突的代码,可以建议将服务器上的.htaccess文件备份后,删除测试。(.htaccess文件以“.”开头,在linux中是隐藏文件,可以通过ftp工具设置显示隐藏文件查看)

(概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。)

2、文件权限设置错误

后台目录和文件权限默认为755,二图片,文字等html文件应该是644,刚上传的文件后出现500,应该主要检查文件权限。可以通过ftp修改文件权限。

3、安装wordpress出现500 Internal Server Error

安装新版本wordpress出现500 Internal Server Error的问题:

  在./wp-includes/class-http.php的291行,改成

  $request_order = apply_filters( 'http_api_transports', array( 'streams' ), $args, $url );

  也就是去掉这几个字符。

  'curl',

  注意:

  部分wordpess程序可能不是291行,那请搜索

  $request_order = apply_filters( 'http_api_transports', array( 'curl', 'streams' ), $args,$url );

  然后将这一句代码替换为

       $request_order = apply_filters( 'http_api_transports', array( 'streams' ), $args, $url );

  然后覆盖到wp-includes文件夹下,覆盖前,为了防止出错,请备份下原文件。

4、服务器资源超载

同一时间内处理器有太多进程需要处理,会出现500。


最后在海外英文网站找到了一些线索,基本都说是服务器fcgi的配置及php memory limit的问题。

后来将此问题反馈给阿里云售后,答复是不能调整服务器,无奈,最终在征求客户同意后,更换为我司租用阿里云服务器打造的安全加强型虚拟主机上,问题解决!看来还是服务器的问题,只不过阿里云店太大了,小客户遇到这类问题很难撼动他们自己认为对的原则。


返回上一页