2012-08-10 115 views
1

我有一點PHP代碼需要使用chgrp()更改文件組。代碼在另一臺服務器上運行(php 5.2),但是當遷移到新服務器(php 5.3)時,它停止工作PHP chgrp operaton不允許

chgrp():不允許操作。

我已經仔細檢查了用戶帳戶apache有寫權限的文件(並且它是所有者只是雙倍確定)。我也加倍檢查了PHP safe_mode已關閉。

任何其他提示?

+0

是剛創建的組?有時你必須在新組發生之前註銷/登錄 – Hawili 2012-08-10 14:44:44

+0

這些組已經存在,因此只需將它們添加到apache用戶即可。羣組的東西有點抓住吸管,因爲我試圖改變Apache本身創建的文件的權限 – Akeem 2012-08-10 14:52:48

+0

我知道這可能會拋出PalmToFaceException,但是你可以再次檢查file_exists()是否返回true文件? – DaveRandom 2012-08-10 15:24:59

回答

0

所以問題剛剛停止發生。我從字面上開始添加一些調試語句,並在添加新語句時刷新日誌,然後我注意到突然停止在日誌中顯示錯誤。我在猜測需要重新啓動的事情,這發生在我的調試之間。我不確定。但理論上safe_mode off,文件存在,而作爲文件所有者/創建者的apache用戶應該從一開始就工作。

1

我想你想的一組分配到目標文件/目錄apache的一個成員,它的chgrp文檔中提到:

只有超級用戶可以任意改變文件組;其他用戶可能會將文件組更改爲該用戶所屬的任何組。

我不知道它背後的想法是什麼,但它說你不應該能夠將你的文件/目錄分配給你不是他們的成員的組;因此apache用戶無法將其任何文件/目錄分配給您可能想到的大多數組(默認配置)。

P.S.您可能可以使用chmodchown以及您的apache用戶擁有的相同權限,但同樣,不允許將這些文件分配給您不是其中的成員的其他組。