服务器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');
?>
但这不显示错误。当我评论要求线时,它显示错误。我不知道为什么它不能满足这个要求。
答案 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