php mkdir權(quán)限不夠的解決辦法:1、把系統(tǒng)默認權(quán)限改為777,并將mkdir指定更大權(quán)限;2、將chmod函數(shù)設(shè)置比系統(tǒng)默認權(quán)限大的權(quán)限;3、將系統(tǒng)的mkdir命令設(shè)置為大于默認值的權(quán)限。
推薦:《php視頻教程》
php中mkdir()函數(shù)的權(quán)限問題
問題描述:
使用以下php代碼創(chuàng)建了一個目錄,期望目錄的權(quán)限是0777,實際結(jié)果是0755
mkdir('./aa/',0777);分析與測試結(jié)果:
1.mkdir()函數(shù)指定的目錄權(quán)限只能小于等于系統(tǒng)umask設(shè)定的默認權(quán)限。
如linux默認的umask一般0022, 即創(chuàng)建目錄的默認權(quán)限是0755, 所以這時php mkdir('./aa/',0777) 得到目錄的權(quán)限是0755.
xw@xw-x201:~/desktop/dd/aa$ umask0022xw@xw-x201:~/desktop/dd/aa$ php -r "mkdir('./xw/',0777);"xw@xw-x201:~/desktop/dd/aa$ php -r "mkdir('./xw1/',0755);"xw@xw-x201:~/desktop/dd/aa$ php -r "mkdir('./xw2/',0747);"xw@xw-x201:~/desktop/dd/aa$ ll總用量 20drwxrwxrwx 5 xw xw 4096 2012-06-01 11:58 ./drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../drwxr-xr-x 2 xw xw 4096 2012-06-01 11:57 xw/drwxr-xr-x 2 xw xw 4096 2012-06-01 11:58 xw1/drwxr--r-x 2 xw xw 4096 2012-06-01 11:58 xw2/把系統(tǒng)默認權(quán)限改為777,mkdir()可以指定更大權(quán)限了
xw@xw-x201:~/desktop/dd/aa$ umask 000xw@xw-x201:~/desktop/dd/aa$ php -r "mkdir('./xw2/',0777);"xw@xw-x201:~/desktop/dd/aa$ ll總用量 12drwxrwxrwx 3 xw xw 4096 2012-06-01 12:08 ./drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../drwxrwxrwx 2 xw xw 4096 2012-06-01 12:08 xw2/2.chmod()函數(shù)不受系統(tǒng)umask影響,可以設(shè)置比系統(tǒng)默認權(quán)限大的權(quán)限。
xw@xw-x201:~/desktop/dd/aa$ umask0022xw@xw-x201:~/desktop/dd/aa$ php -r "mkdir('./xw1/',0777);"xw@xw-x201:~/desktop/dd/aa$ php -r "mkdir('./xw2/');"xw@xw-x201:~/desktop/dd/aa$ php -r "mkdir('./xw3/');chmod('./xw3/',0777);"xw@xw-x201:~/desktop/dd/aa$ ll總用量 20drwxrwxrwx 5 xw xw 4096 2012-06-01 12:12 ./drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../drwxr-xr-x 2 xw xw 4096 2012-06-01 12:11 xw1/drwxr-xr-x 2 xw xw 4096 2012-06-01 12:11 xw2/drwxrwxrwx 2 xw xw 4096 2012-06-01 12:12 xw3/3.系統(tǒng)的mkdir命令可以設(shè)置大于默認值的權(quán)限。
xw@xw-x201:~/desktop/dd/aa$ umask0022xw@xw-x201:~/desktop/dd/aa$ mkdir -m0777 xwxw@xw-x201:~/desktop/dd/aa$ ll總用量 12drwxrwxrwx 3 xw xw 4096 2012-06-01 12:18 ./drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../drwxrwxrwx 2 xw xw 4096 2012-06-01 12:18 xw/總結(jié):
php若要創(chuàng)建一個有讀寫權(quán)限的目錄,最好使用以下代碼,不要直接使用mkdir函數(shù)指定權(quán)限,以避免系統(tǒng)umask的影響
mkdir('./xw/');chmod('./xw/',0777);