php mkdir 権限が不十分な問題の解決策: 1. システムのデフォルト権限を 777 に変更し、mkdir により大きな権限を指定します。 2. chmod 関数にシステムのデフォルト権限より大きい権限を設定します。 3.システムを変更する mkdir コマンドは、デフォルトよりも大きい権限を設定します。
推奨事項: 「PHP ビデオ チュートリアル 」
php の mkdir() 関数の権限の問題
問題の説明:
次の php コードを使用してディレクトリを作成します。ディレクトリの予期される権限は 0777 ですが、実際の結果は 0755
mkdir('./aa/',0777);
です分析とテストの結果:
1. mkdir() 関数によって指定されるディレクトリ権限は、システム umask によって設定されるデフォルト権限以下のみにすることができます。
たとえば、Linux のデフォルトの umask は一般に 0022、つまりディレクトリを作成するためのデフォルトの権限は 0755 であるため、この時点では php mkdir('./aa/',0777) で権限を取得します。ディレクトリの 0755.
xw@xw-X201:~/Desktop/dd/aa$ umask 0022 xw@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 总用量 20 drwxrwxrwx 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/
システムのデフォルトの権限を 777 に変更します。mkdir() はより大きな権限を指定できます
xw@xw-X201:~/Desktop/dd/aa$ umask 000 xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw2/',0777);" xw@xw-X201:~/Desktop/dd/aa$ ll 总用量 12 drwxrwxrwx 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() 関数はシステムの umask の影響を受けません。また、システムのデフォルトの権限よりも大きな権限を設定できます。
xw@xw-X201:~/Desktop/dd/aa$ umask 0022 xw@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 总用量 20 drwxrwxrwx 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. システムの mkdir コマンドは、デフォルト値より大きい権限を設定できます。
xw@xw-X201:~/Desktop/dd/aa$ umask 0022 xw@xw-X201:~/Desktop/dd/aa$ mkdir -m0777 xw xw@xw-X201:~/Desktop/dd/aa$ ll 总用量 12 drwxrwxrwx 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/
概要:
php が読み取りおよび書き込み権限を持つディレクトリを作成したい場合は、次のコードを使用するのが最善です。権限を指定するために mkdir 関数を直接使用しないでください。システムの影響 umask
mkdir('./xw/'); chmod('./xw/',0777);
以上がphp mkdirに十分な権限がない場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。