Lösung für die unzureichenden Berechtigungen von php mkdir: 1. Ändern Sie die Systemstandardberechtigungen auf 777 und geben Sie höhere Berechtigungen für mkdir an. 2. Stellen Sie die chmod-Funktion so ein, dass sie über Berechtigungen verfügt, die über den Systemstandardberechtigungen liegen. 3. Legen Sie den mkdir-Befehl fest Berechtigungen größer als der Standardwert.
Empfehlung: „PHP-Video-Tutorial“
Berechtigungsproblem mit der mkdir()-Funktion in PHP
Problembeschreibung:
Verwenden des folgenden PHP-Codes zum Erstellen eines Verzeichnisses mit den erwarteten Berechtigungen von Das Verzeichnis ist 0777, das tatsächliche Ergebnis ist 0755.
Zum Beispiel ist die Standard-Umask von Linux im Allgemeinen 0022, das heißt, die Standardberechtigung zum Erstellen eines Verzeichnisses ist 0755, sodass php mkdir('./aa/',0777) zu diesem Zeitpunkt die Berechtigung des Verzeichnisses erhält sei 0755.
mkdir('./aa/',0777);
Ändern Sie die Standardberechtigung des Systems auf 777. mkdir() kann größere Berechtigungen angeben
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/
2.chmod()-Funktion wird von der System-Umask nicht beeinflusst und kann Berechtigungen festlegen, die über die Standardberechtigungen des Systems hinausgehen.
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/
3. Der mkdir-Befehl des Systems kann Berechtigungen festlegen, die über dem Standardwert liegen.
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/
Zusammenfassung: Wenn
php ein Verzeichnis mit Lese- und Schreibberechtigungen erstellen möchte, verwenden Sie am besten den folgenden Code. Verwenden Sie nicht direkt die Funktion mkdir, um Berechtigungen anzugeben, um die Auswirkungen von System umask zu vermeiden
Das obige ist der detaillierte Inhalt vonWas tun, wenn PHP mkdir nicht über ausreichende Berechtigungen verfügt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!