2013-10-25 44 views
0

我有兩個文件,我想用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 

我一直在使用 '文件模式' 和 '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中讀取時。爲什麼會發生這種情況,我該如何解決這個問題?請幫忙!

回答

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 
+0

特別值得一提的是,該解決方案並未完全禁用SELinux,而是根據您的需要修改了它的策略。 –

0

你用過sudo嗎?

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

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

你可能需要超級用戶更改權限

+0

是的,我跑了使用root帳戶的命令。 –

+0

@CasperNine你是否在運行任何類型的面板,如plesk?因爲該組可能不需要是apache:apache可能需要psacln:然後將用戶作爲ftp用戶名。你有沒有嘗試在文件夾中使用ls -la來查看哪些組和用戶在那裏? –

0

始終使用4號,我有很多的麻煩,因爲我忘了。所以0755將是我的建議。

+0

添加0755沒有解決問題:( –

相關問題