Das Erstellen eines Ordners mit PHP im Stammverzeichnis zeigt den mkdir-Fehler in Ubuntu an

786
user698637

Mein Problem ist eine Fehlermeldung wie folgt, während versucht wird, einen Ordner mit PHP-Skript in zu erstellen /opt/lampp/htdocs/.

mkdir (): Erlaubnis verweigert

Bin mit Ubuntu-System und Lampp installiert. In meiner Anwendung muss ich einen Ordner /opt/lampp/htdoc/für die temporäre Speicherung von Dateien erstellen.

Ich kann Dateien und Ordner dynamisch per PHP-Skript erstellen.

Ich habe meinen Ordnerinhaber und meine Gruppe überprüft und in www-data geändert: www-data wie im inneren Ordner, aber immer noch derselbe Fehler.

Hier ist mein Code zum Erstellen eines Ordners:

$old = umask(0);  mkdir($UploadDirectory, 0777,true); umask($old); 

Mein $UploadDirectoryWeg ist auch der richtige /opt/lampp/htdocs/mydirectory.

Ich habe alle verfügbaren Antworten in StackOverflow ausprobiert, deshalb erstelle ich eine neue Frage. Bitte helfen

0
Haben Sie Ihre PHP-Konfiguration überprüft, wann immer `safe_mode` oder` basedir` eingestellt ist? Wo befindet sich das Skript, das diese Befehle ausführt? Warum setzen Sie den "umask"? Seth vor 7 Jahren 0

2 Antworten auf die Frage

0
Scott-Mc

Da Sie Ubuntu ausführen, sollten Sie sich AppArmor ansehen, da dies wahrscheinlich das verhindert, was Sie schreiben kann. Sie können aa-logprof ausführen und den Anweisungen folgen.

0
techhie

Ich habe andere Websites mit ein paar anderen entdeckt, die diese Frage mit unterschiedlichen Antworten stellten, die funktionierten. Keine davon funktionierte für mich. Ich habe die Antwort aufgenommen, die in meinem Fall funktioniert hat. Ich hoffe, dass diese Informationen zumindest einigen Menschen helfen werden.

Die Lösung, die NICHT für mich funktionierte, aber für manche Leute funktionieren könnte, war:

$ old = umask (0); mkdir ("/ path / some_dir /", 0755, true); umask ($ old); 

Die eine, die für mich gearbeitet hat, mit einem etwas seltsamen Verhalten:

$ old = umask (0000); mkdir ("/ var / www / html / somewebsite / images / somefolder / somefolder /", 6640, true); umask ($ old); 

Die erstellten Ordner scheinen mit den 640-Berechtigungen zu enden.