這兩天在寫一個緩存模塊,需要把生成的緩存目錄和文件設置成777權限,好讓ftp用戶可以直接登錄刪除緩存,蛋疼的事也就這麼發生了,明明用了mkdir($path, 0777);用ftp用戶登錄卻刪除不了,爲什麼呢?
查看了一下建立的目錄的權限,發現mkdir建立的目錄權限都是755的,我明明用的是777,立馬google了一下,才知道原來是受Linux系統的 umask限制了,Linux的umask默認值是0022,所以php 的 mkdir 函數只能建立出755權限的文件夾出來。
小Tips:查看Linux的umask值直接在終端輸入命令umask就可以看到
解決方法:
$oldmask = umask(0);
mkdir("test", 0777);
umask($oldmask);