.htaccess - 没有PHP错误或没有写文件权限

时间:2014-11-24 23:08:54

标签: php apache .htaccess

服务器Apache, PHP 5.4

我的托管上有默认的.htaccess:

<FilesMatch "\.php$"> # phpvs v6
AddHandler x-httpd-php6 .php # phpvs v6
</FilesMatch> # phpvs v6

但PHP文件中没有显示错误,但允许我通过PHP脚本创建文件。 当我删除这3行并放

php_flag display_errors on
php_flag html_errors on
php_flag  log_errors on

错误显示但我不能使用fopen或any来创建文件。我明白了:

Warning: fopen(newfile.txt) [function.fopen]: failed to open stream: Permission denied in /home/desdde/domains/xXXXXx/public_html/index.php on line 2
Unable to open file!

是否有可能合并:

<FilesMatch "\.php$"> # phpvs v6
AddHandler x-httpd-php6 .php # phpvs v6
</FilesMatch> # phpvs v6

php_flag display_errors on
php_flag html_errors on
php_flag  log_errors on

一起工作?

我试过这样的事:

<?php
ini_set("display_errors", 1);
asdasd
require('simple_html_dom.php');
?>

但这不显示错误。当我评论要求线时,它显示错误。我不知道为什么它不能满足这个要求。

1 个答案:

答案 0 :(得分:1)

在PHP 5.3及更高版本中,您可以使用.user.ini文件来自定义PHP。我想AddHandler ...允许选择较新的PHP版本,可能通过CGI / FCGI接口工作。这就是为什么php_flag ...指令不再起作用的原因。很遗憾,您的服务器管理员可能会阻止.user.ini个文件。在启用user_ini.filename部分的phpinfo()中查看AddHander...。如果它不为空,您可以使用其中的文件名作为自定义配置。如果它的默认值为.user.ini,您可以在与脚本相同的目录中创建此类文件,或者在任何级别上创建此类文件并覆盖所选设置,例如:

display_errors=on
html_errors=on
log_errors=on

请记住,PHP可能会缓存那里发现的信息,因此处理请求的当前流程需要在文件更改被捕获之前超时(至少在文档注释中写的是什么,我个人没经历过这种感觉。有关详细信息,请查看:http://php.net/manual/en/configuration.file.per-user.php