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

2022-08-30 16:45:26

当我使用以下PHP设置时,我在访问网站时得到了。.htaccess500 Internal Server Error

文件中的代码:.htaccess

php_flag display_errors off
php_flag log_errors on

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

我知道上面的代码是正确的。但是当它向我展示时,我也尝试了不同的代码(很可能是错误的),但没有任何效果。尝试的不同代码是: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

从这个问题的评论中了解到后,我发现上的PHP设置不适用于FastCGI。因此,要更改PHP设置,我需要修改或需要在php代码中执行此操作。当我无权修改文件并且不想单独修改所有PHP文件时,是否有任何替代方法?.htaccessphp.iniphp.ini


答案 1

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

DSO 注意事项:

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

cgi,fcgi,suphp它将不起作用。


答案 2

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

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脚本的设置。


推荐