%60%3A%20Berechtigung%20zum%20Erstellen%20von%20Ordnern%20mit%20PHP%20verweigert.png)
Ich habe dieses PHP-Skript:
$dir = FCPATH . 'uploads' . DIRECTORY_SEPARATOR . 'posts'; // is in CodeIngiter
if (!is_dir($dir)) {
mkdir($dir, 755);
}
Dadurch wird ein Ordner zum Speichern der Bilder von Beiträgen erstellt. Allerdings erhalte ich diesen Fehler/diese Warnung:
Severity: Warning
Message: mkdir(): Permission denied
und ich kann den Ordner nicht erstellen.
Wie kann ich das beheben? Meine Ordnerstruktur sieht folgendermaßen aus:
/opt/lampp/htdocs/www/my-site/public/ (uploads/posts) // all folders inside files will generate in php
Einige weitere Informationen: Wenn ich diesen Code kommentiere, den posts
Ordner manuell erstelle und dann versuche, eine Datei hochzuladen, erhalte ich eine Fehlermeldung, dass der Zielpfad nicht beschreibbar ist.
Ausgabe von ls -l /opt/lampp/htdocs/www/my-site/
:
drwxrwxr-x 15 lykos lykos 4096 Sep 17 23:08 application
drwxrwxrwx 6 lykos lykos 4096 Sep 29 22:00 public
drwxrwxr-x 8 lykos lykos 4096 Sep 7 12:31 system
Ausgabe von ls -l /opt/lampp/htdocs/www/my-site/public
:
drwxr-xr-x 4 lykos lykos 4096 Sep 18 21:48 css
drwxr-xr-x 2 lykos lykos 4096 Sep 27 19:18 img
-rwxrwxr-x 1 lykos lykos 9872 Sep 17 23:04 index.php
drwxr-xr-x 8 lykos lykos 4096 Sep 27 20:06 js
drwxr-xr-x 2 lykos lykos 4096 Sep 29 20:34 uploads
Antwort1
Das Problem liegt bei Ihrem mkdir()
Anruf, nicht bei Ubuntu.
GemäßIhr Kommentar, ls -l /opt/lampp/htdocs/www/my-site/public/uploads
existiert nicht, daher sollten Sie mkdir()
die folgende Funktion mit der Übergabe des recursive
Parameters aufrufen:
$dir = '/uploads/posts';
if (!is_dir($dir)) {
mkdir($dir, 755, true);
}