这次是一次特殊的错误。 一般情况下,这种错误能再碰到的机会较少的。 这里作个记录而已。解决Apache解决500 Internal Server Error & Premature end of script headers错误。
问题描述:
Linux + Apache + PHP ,装好后,在终端用php phpinfo.php能运行。
但通过浏览器访问:127.0.0.1/phpinfo.php 却出错(能正常访问html文件等): 500 Internal Server Error
一般的500错误解决方法:
- web根目录(或是php文件)权限错误
解决:将根目录的权限由错误的777改成755 解决:将php文件的属性改成 644 或是755试试。 - .htaccess文件错误
解决:修改.htaccess文件的内容,在本机制作一个空的.htaccess文件,上传覆盖。
一般的500错误大多数是权限的问题,或是url rewrite造成的。
在这个case,直接就排除了上面的原因。继续~~~
- 猜测是PHP安装时出错的原因,重新装了PHP,也不行。
- httpd.conf 与 php.ini的配置已经重复的检查过几遍了。也不行。再继续~
继续查找log_error文件的记录,发现错误都是:Premature end of script headers
Premature end of script headers错误
又是一轮百度,google之后,发现这个错误是CGI文件才会有的错误。网上的资料都是运行CGI文件引起的错误。也是修改权限(755 或是777)之后就能解决的。但是php文件也有这种提示就奇怪了。
终于,在对照了二份httpd.conf的配置之后,发现httpd.conf里多了一句:
AddHandler x-httpd-php5 .php
把它注释掉
#AddHandler x-httpd-php5 .php
重启apache, service httpd restart
终于一切正常。猜想的原因可能是把php文件当作CGI文件引起的错误。具体是不是就不知了~
20条回应:“Apache解决500 Internal Server Error & Premature end of script headers错误”
我是过来学习的
感觉不错,顶一下,继续加油!
很好的知识啊,等需要的时候来参考一下。如果是发帖出现500错误呢?是什么现象?
估计是服务器不够稳定吧~
看来你php的经验越来越足了啊~
一看就知道博主的程序功底很好!
博主文章写的真好,回帖是一种美德,希望博主也去我那里坐一坐,虽然文章不是很好。
博主对程序的理解蛮深的嘛,很羡慕
真的还是非常佩服柳城的。。 技术越来越牛了啊
很喜欢博主的插件,所以来探访一下。
你好 交换链接吗 百度隔天快照PR3
http://www.we160.com15
柳城的技术越来越好了
这个还好点,我在windows下面的更是纠结。。我都搞不定
我的站出现我次这种情况
过来博主这边学习!
今天也出了这个错误,找了半天不是这个问题
是插件问题
胸闷
对Apache实在是了解不多啊,对于Linux也是。看来得好好补补血了……
嗯 不错 有学到东西
非常感谢,问题解决了。这种问题好像在日本服务器上容易遇到。
我想知道在windows下是怎么解决的