无法打开流:权限被拒绝 - 尝试从文件读取时

时间:2013-10-25 11:26:08

标签: php apache chmod chown

我有两个文件,我想用php阅读。一个文件位于/var/www/html,另一个文件位于/svn/access/(我创建的目录)。我可以读取/var/www/html中的文件,但无法读取另一个文件。

我收到以下错误消息:

Warning: fopen(/svn/access/test): failed to open stream: Permission denied in /var/www/html/svnmanager/test2.php on line 5

我已经使用'chmod'和'chown'

授予了所有目录和文件的权限
chown -R apache:apache /svn*
chmod -R 755 /svn

chown -R apache:apache /svn/*
chmod -R 755 /svn/*

enter image description here

但是当我尝试从路径/svn/access读取时,我仍然会收到该错误。为什么会发生这种情况?我该如何解决这个问题?请帮忙!

3 个答案:

答案 0 :(得分:1)

终于找到了自己的解决方案。 SELinux阻止httpd写入/var/www/以外的任何文件夹。因此,必须进行一些配置。

yum -y install policycoreutils-python

semanage fcontext -a -t httpd_sys_rw_content_t "/svn/access(/.*)?"
restorecon -R /svn/access

答案 1 :(得分:0)

你使用过sudo吗?

sudo chown -R apache:apache /svn*
sudo chmod -R 755 /svn

sudo chown -R apache:apache /svn/*
sudo chmod -R 755 /svn/*

您可能需要成为超级用户才能更改权限

答案 2 :(得分:0)

总是使用4个号码,我遇到了很多麻烦,因为我忘记了。所以0755将是我的建议。