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


500 Internal Server Error when using .htaccess for PHP Settings

当我使用.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文件时,是否有其他方法?

就像上面的评论说的:你需要将你的 php 模块作为动态共享对象运行才能使其工作,如 Apache PHP 请求 Hanlding 文档中所述

DSO注意事项:

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

CGI,FCGI,SUPHP 它不会起作用。

正如你所发现的,修改.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 脚本的设置。

我知道

这个问题问已经有一段时间了,但是如果您的.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)。

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

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

问题解决了。

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