2010-10-06 88 views
1

我在ubuntu 10.04下默認安裝了joomla。我也改變了模板(具有讀寫權限的apache用戶)的index.php的權限,以便我可以從管理員屏幕更改index.php。一切工作正常,直到這裏。通過joomla更改文件權限

但現在當我從管理員屏幕更改文件並保存該文件時,它將更改文件權限並從文件中刪除寫入權限。它確實保存了更改。

現在隨着寫權限被刪除,當我嘗試安裝模板時,它給了我錯誤。所以我必須再次手動設置index.php上apache用戶的寫權限並重新安裝模板,然後運行良好。

有誰知道joomla是否正在更改文件權限,以及任何想法如何解決這個問題。

感謝, Tanmay

回答

2

你可能由umask設置的影響。把umask(0133);放在你的配置文件中(或者你想要的任何地方,只要確保它在製作文件之前就到了)。

背景資料:

  • r(讀)具有爲4的值(二進制值:100
  • w(寫)具有2的值(二進制值:010
  • x (執行)的值爲1(二進制值:001

這些權限可以授予所有者,組和其他人('其他')。

在PHP中創建文件時,默認情況下會將666添加到該文件中。從這個數字中,使用按位AND刪除umask值。它看起來像你有一個0333的umask。顯示會發生什麼,最好的辦法是通過展示它:

 
PHP adds: rw-rw-rw- 0666 
umask : -wx-wx-wx 0333 
result : r--r--r-- 0444 

如果你正在使用的umask 0133:

 
PHP adds: rw-rw-rw- 0666 
umask : --x-wx-wx 0133 
result : rw-r--r-- 0644 
+0

感謝Lekensteyn。我會在幾分鐘內嘗試並更新。 – jtanmay 2010-10-06 14:39:07