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

Deb*_*sad 23 php .htaccess

当我.htaccess用于以下PHP设置时,我正在500 Internal Server Error访问该网站.

.htaccess文件中的代码:

php_flag display_errors off
php_flag log_errors on
Run Code Online (Sandbox Code Playgroud)

该文件的文件权限.htaccess是644

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

php_value display_errors off
php_value log_errors on
Run Code Online (Sandbox Code Playgroud)

php_value display_errors 0
php_value log_errors 1
Run Code Online (Sandbox Code Playgroud)

可能是什么原因500 Internal Server Error

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

Ger*_*ill 6

正如您所发现的,修改.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() ?>
Run Code Online (Sandbox Code Playgroud)

到该目录,以便您可以查看在该目录中运行的 php 脚本的设置。


Har*_*hof 5

就像上面的评论一样:您需要将PHP模块作为动态共享对象运行,以使其工作,如Apache PHP请求处理文档中所述

DSO注意事项:

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

cgi,fcgi,suphp将无法正常工作。