2012-02-04 92 views
1

我無法打開一個文件進行寫入,除非我爲它所創建的目錄啓用「執行」權限,這似乎很奇怪。爲什麼「寫入」權限不夠?爲什麼PHP需要「執行」權限才能寫入文件?

這是一個非常簡單的fopen,fputcsv循環,fclose序列。該目錄中的文件沒有其他任何內容正在完成。

基本配置 - Centos的,阿帕奇,PHP

感謝

+4

這可能與SELinux(http://en.wikipedia.org/wiki/Security-Enhanced_Linux)有關,因爲您使用的是CentOS。 – summea 2012-02-04 18:23:47

回答

1

這可能與SELinux做。基本上,SELinux可以讓您更好地控制進程和守護進程可以執行的操作......一種超出普通用戶/組權限的邊界系統。它對細粒度控制可能有幫助,但有時候會妨礙它。

有辦法關閉它(請參閱http://linuxconfig.org/how-to-disable-selinux)。

但是,還有一些方法可以微調設置(請參閱:http://sheltren.com/stop-disabling-selinux),從長遠來看這可能會更好。如果你不與CentOS綁定,你也可以嘗試一個不同的發行版。

編輯:

此外,如果這沒有做SELinux的,如在下面的評論中提到sepp2k,你可能想看看標題爲「執行權限」在Wayne Pollock的this file and directory reference guide上。

+2

這與SELinux無關。您不能在沒有執行權限的目錄中創建,修改或讀取文件。這是正常的行爲。 – sepp2k 2012-02-04 20:15:04

+0

這類問題最近在這裏被問到......(http://stackoverflow.com/questions/8998743/rhel-php-writing-files-outside-var-www-html/8998776)和( http://stackoverflow.com/questions/9056628/php-cant-write-outside-of-the-document-root-no-matter-what/9059696)也許我錯了。不要傷害自己發佈自己的答案。 – summea 2012-02-04 20:44:55

+0

但是,您確實提出了有關'執行'權限的好處:http://content.hccfl.edu/pollock/AUnix1/FilePermissions.htm(執行權限部分)編輯我的答案以反映這種可能性。 – summea 2012-02-04 21:17:52

2

「在目錄上,執行權限(也稱爲」搜索位「)允許您訪問目錄中的文件並使用cd命令輸入它,例如。」 source - 關於文件權限的良好討論

相關問題