当我使用.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文件时?
答案 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
解决了问题。
这可能不是你的问题,但经过狩猎,这个解决方案对我有用。祝你好运。