2014-11-24 91 views
2

服务器的Apache,PHP 5.4的.htaccess - 没有PHP错误或没有写文件权限

我有我与托管默认的.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或创建文件。我得到:

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

使用error_reporting(E_ERROR | E_WARNING | E_PARSE);报告简单错误 – craig1231 2014-11-24 23:11:35

+0

您尝试使用哪种代码创建文件? – craig1231 2014-11-24 23:13:03

+0

您确定您脚本所看到的当前工作目录是可写的吗? #phpvs V6 AddHandler的X的httpd - PHP6 .php#如果phpvs V6 #phpvs V6 – RobertT 2014-11-24 23:17:37

回答

1

在PHP 5.3及更高版本中,您可以使用.user.ini文件来自定义PHP。我猜AddHandler ...允许选择较新的PHP版本,可能通过CGI/FCGI接口工作。这就是为什么php_flag ...指令不再有效。不幸的是.user.ini文件可能会被服务器管理员阻止。检查user_ini.filenamephpinfo()AddHander...部分启用。如果它不是空的,你可以使用给定的文件名作为你的自定义配置。如果它有.user.ini它的默认值,你可以在同一目录下的脚本或任何级别了创建这样的文件,重写选定的设置,如:

display_errors=on 
html_errors=on 
log_errors=on 

只要记住,在PHP可以缓存发现信息在那里,所以当前的进程处理请求需要超时才能捕捉到文件更改(至少这是文档注释中写的内容,我个人没有经历过)。有关详细信息,请参阅:http://php.net/manual/en/configuration.file.per-user.php

+0

我有: user_ini.filename \t .user.ini – user3345547 2014-11-24 23:34:00

+0

我做到了,它的工作原理:)谢谢:) – user3345547 2014-11-24 23:50:49

相关问题