使用.htaccess进行PHP设置时出现500内部服务器错误

时间:2012-06-07 08:32:48

标签: php .htaccess

当我使用.htaccess进行以下PHP设置时,我在访问网站时收到500 Internal Server Error

.htaccess文件中的代码:

php_flag display_errors off
php_flag log_errors on

.htaccess文件的文件权限为644

我知道上面的代码是正确的。但当它向我展示500 Internal Server Error时,我尝试了不同的代码(最可能是错误的),但没有任何效果。尝试的不同代码是:

php_value display_errors off
php_value log_errors on

php_value display_errors 0
php_value log_errors 1

500 Internal Server Error可能是什么原因?

从这个问题的评论中学习后,我发现.htaccess上的PHP设置不适用于FastCGI。因此,要更改PHP设置,我需要修改php.ini或者我需要在php代码中进行修改。有没有其他方法,当我无法修改php.ini文件并且我不想单独修改所有PHP文件时?

3 个答案:

答案 0 :(得分:4)

就像上面的评论所说:你需要运行你的php模块Dynamic Shared Object才能使它工作,如Apache PHP Request Hanlding Documentation

中所述
  

DSO注意事项:

     

libphp提供Apache指令,如php_ $ value和php_admin_ $ value。 DSO是这些指令在.htaccess文件或httpd.conf中有效的唯一选项。当使用并发DSO补丁编译这些指令时,它们应该被命名为php4_ $ value和php5_ $ value。

cgi,fcgi,suphp它不起作用。

答案 1 :(得分:2)

正如您所发现的,修改.htaccess仅适用于apache模块,它将添加到apache可以理解的指令中。这不适用于cgi和其他人。

php方式是修改整个网站的php.ini,或者在每个目录或每个用户的基础上修改它。

对于php5.5(不确定其他版本),修改.user.ini文件,在该文件中,您希望将这些设置应用于哪个目录。显然,在站点的根目录中设置它将使其适用于整个站点。

访问.user.ini:http://php.net/manual/en/configuration.file.per-user.php

转到此处查看指令列表以及可以更改的位置: http://php.net/manual/en/ini.list.php

最后,要检查您的文件(可能在评论中提到),添加一个包含

的phpinfo.php(名称无关紧要)文件
<?php phpinfo() ?>

到目录,这样你就可以看到在该目录中运行的php脚本的设置。

答案 2 :(得分:0)

我知道问题已经有一段时间了,但是如果你的.htaccess不包含错误,可能是导致你头痛的评论。

我最近升级了WHM,突然间我在某些页面上遇到了500个内部服务器错误。在浏览完日志后,我可以看到.htaccess文件是问题,我解决了问题,因为它们是由评论引起的。

这就是为我解决问题的原因。

以前,我在.htaccess文件中有如下命令:

Order Deny,Allow
Deny from 52.87.112.125   # whattheme.com
Deny from 192.163.217.239 # scanwp.net

WHM升级后我开始收到500内部服务器错误(升级中可能包含apache)。

突然间,阿帕奇不喜欢指令中间的评论。我修改了上面代码的.htaccess文件,如下所示:

Order Deny,Allow
#  whattheme.com
Deny from 52.87.112.125

#   scanwp.net
Deny from 192.163.217.239

解决了问题。

这可能不是你的问题,但经过狩猎,这个解决方案对我有用。祝你好运。