2012-09-24 161 views
1

我在我的系统上安装了fedora15,安装了apache和php5.3和mysql。我没有改变任何配置文件中的任何默认设置Linux文件上传,fwrites,不起作用

创建一个ftpuser并将文件上传到'/ var/www/html /'的Documentroot,当我运行php文件时,所有文件都能成功运行。

但是,当涉及到文件上传,fopen,fwrite,imagemagick转换等所有涉及文件创建的程序不起作用。我已经给了我运行php脚本的文件夹777的权限,但它仍然给我访问被拒绝的错误。

下面是创建权限被拒绝错误的示例代码。

$handle = fopen("test.txt","w+"); 
    if(!$handle)die("Could not open file for writing"); 
    fwrite($handle,"Testing Uploads Successfull."); 
    fclose($handle); 

上面的文件位于我新安装的fedora15系统的'/ var/www/html/test /'目录下。

虽然如果我使用php命令行以root用户身份运行此文件,它会正确地创建一个新文件和其中的文本。如果我在另一个用户的命令行中运行相同的文件,它会产生权限被拒绝的错误,尽管该目录已经获得了777的权限。

请任何一个帮助我这个奇怪的行为体,

在此先感谢。

+1

它可以是应用程序装甲或se-linux? – RomanKonz

+0

感谢您的回复,但您可以详细阐述它,以了解我必须做的事情。 – Kishore

+0

它是一项保护您系统的服务。我不是fedore的用户,但我记得这可能会带来这样的问题。您可以尝试禁用selinux进行测试:http://www.crypt.gen.nz/selinux/disable_selinux.html – RomanKonz

回答

1

SELinux阻止Web服务器创建和写入文件。有关更多详细信息,请参阅httpd_selinux(8)手册页。

+0

感谢RomanKonz和Ignacio为我指引正确的方向。现在问题解决了。这只是selinux的一个问题。它没有启用httpd_write选项。使httpd解决了这个问题。 再次感谢日志。 – Kishore