PHP volle Rechte geben

  • Moin,

    mache gerade ein kleines WordPress-Plugin. Mir ist aber aufgefallen dass dieses aus sich heraus Dateien und Ordner erstellen kann, aber nicht in diese dem Pluginroot untergeordneten Ordner schreiben kann. Daher frage ich mich: Laufen WordPress-Installationen standardmäßig so, dass Plugins keine Rechte haben in einen untergeordneten Ordner zu schreiben? Habe auch mal meinen Code angehangen nur damit jeder sehen kann was ich versuche. Wenn ich das "lastpositions/" bei $dir entferne, kann die Datei geschrieben werden, sonst aber nicht. Muss ich erst Berechtigungen umstellen? Danke!

    Code
    $dir = WP_CONTENT_DIR."/plugins/pluginname/";


    Code
    $dir = WP_CONTENT_DIR."/plugins/pluginname/lastpositions/";
      if(is_dir($dir) == false){
        mkdir($dir); //Das funktioniert
      }
    
      $file = fopen($dir."testfile.txt", "w+");
      
      echo "Written to file: ".$dir."testfile.txt";
  • Daher frage ich mich: Laufen WordPress-Installationen standardmäßig so, dass Plugins keine Rechte haben in einen untergeordneten Ordner zu schreiben? Habe auch mal meinen Code angehangen nur damit jeder sehen kann was ich versuche. Wenn ich das "lastpositions/" bei $dir entferne, kann die Datei geschrieben werden, sonst aber nicht. Muss ich erst Berechtigungen umstellen?

    Das hat erstmal wenig mit Wordpress zu tun, sondern hängt davon ab, welche UMASK eingestellt ist, und welcher Nutzer die Aktion gerade ausführt.

    Selten ist der Besitzer eines Ordners auch der gleiche Nutzer, mit dem der PHP Prozess ausgeführt wird.


    Üblicherweise haben Ordner die Rechte 755 oder 750 - damit hier in einen Ordner geschrieben werden kann, muss dieser die Rechte 770 oder 777 haben.

    Hier hilft der chmod Befehl auf den Ordner.


    Gibt es eine Fehlermeldung?


    (Technisch gesehen, wenn du den Ordner erstellt, kannst du bei richtiger UMASK auch drinne schreiben - da hast ja den Ordner schon geschrieben - ist die Frage funktioniert das mkdir richtig)?

  • Üblicherweise haben Ordner die Rechte 755 oder 750 - damit hier in einen Ordner geschrieben werden kann, muss dieser die Rechte 770 oder 777 haben.

    Hier hilft der chmod Befehl auf den Ordner.

    Jep, das war es. Habe jetzt für den Ordner chmod auf 777 gesetzt und es funktioniert perfekt. Vielen Dank!