1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

TMPDIR und WP_TEMP_DIR meist überflüssig

Dieses Thema im Forum "Installation" wurde erstellt von upscho, 27. September 2010.

  1. upscho

    upscho New Member

    Registriert seit:
    26. September 2010
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo,

    in verschiedenen Forumsbeiträgen wird vorgeschlagen, mit Hilfe der Umgebungsvariablen TMPDIR und der Konstanten WP_TEMP_DIR in der wp-config.php den Pfad auf ein Verzeichnis für temporäre Dateien einzustellen. Beispielsweise mit folgenden Anweisungen:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Zumindest ab WordPress 3.0 sind diese Zeilen meist überflüssig.


    Dies liegt daran, dass der Webhoster in der Regel in der php.ini bereits den Pfad auf ein geeignetes Verzeichnis konfiguriert hat. Ob dies der Fall ist, lässt sich mit Hilfe einer kleinen PHP-Datei, in der die Funktion phpinfo() aufgerufen wird, überprüfen:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    In der angezeigten Info im Abschnitt "PHP Credits - Configuration - PHP Core", Spalte "Local Value" wird der Inhalt der zuständigen Konfigurationsvariablen "upload_tmp_dir" angezeigt.

    Bei der Suche nach einem Verzeichnis für temporäre Dateien fragt WordPress nun genau diese Konfigurationsvariable ab. Nur wenn das nicht erfolgreich ist, wird die Umgebungsvariable TMPDIR abgefragt:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Im Fall der Konstanten WP_TEMP_DIR erfolgt die Abfrage von "upload_tmp_dir" erst dann, wenn WP_TEMP_DIR nicht definiert ist
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Die Funktion "trailingslashit" ergänzt übrigens bei Bedarf einen am Ende des Pfades fehlenden Slash "/".

    Gruß,
    upscho
     
  2. blog_micky

    blog_micky Well-Known Member

    Registriert seit:
    28. August 2010
    Beiträge:
    333
    Zustimmungen:
    0
    Hi,

    okay, soweit klar! Wurde aber in der php.ini die Variable "upload_tmp_dir" nicht gesetzt, also keine Angabe, macht es den dann nicht doch Sinn die beiden WP Konstanzen in der wp-config.php, auch bei WP 3.0.1, explizit zu definieren...!?!?

    Gruß blog_micky
     
    #2 blog_micky, 27. September 2010
    Zuletzt bearbeitet: 27. September 2010
  3. codestyling

    codestyling WPD-Team

    Registriert seit:
    30. März 2008
    Beiträge:
    1.904
    Zustimmungen:
    0
    Es ist schon erstaunlich, wieviel Halbwahrheiten und Falschinformationen hier verbreitet werden! Wenn man sich die Datei der 1. Fundstelle im o.g. Eingangsbeitrag von Dateinamen her auch nur ansieht, dann stellt man fest, daß dies nur in für die Differenzanzeige für Post Revisionen in .../text/Diff.php gemacht wird. Dies ist eine 3rd party library und nur zu WordPress hinzugefügt. Gewartet wird das Diff Tool aber in einem anderen Projekt.

    Die 2. Fundstelle ist die von WorkPress selbst und diese bevorzugt den Wert der Konstanten WP_TEMP_DIR, wenn er denn gesetzt ist. Ansonsten wird ermittelt, wo sich das Temp Directory befindet.

    Im Normalfall ist das von Server voreingestellte Temp Directory ein geshartes Directory über alle Domains dieses Servers. Also landen temporär erstmal alle Uploads aller Kunden auf diesem Server in diesem Verzeichnis. Man kann sich sehr einfach dieses Verzeichnis komplett auflisten lassen und alle Dateien ansehen, die andere hochladen, wenn die Scripte zum Hochladen die Dateien nicht wieder ihren Müll beräumen.
    Aus diesem Grund kann man seinen eigenen Temp Pfad setzen, um Dateien auch nur im eigenen Domainbereich zu behalten, es ist kein sinnloses Unterfangen deswegen sondern hat auch was mit Sicherheit zu tun.

    Wichtig: Wenn man das Verzeichnis aktiv durch die Konstante setzt, muß man allerdings auch gewährleisten, daß WordPress dort hin schreiben kann und die passenden Rechte gesetzt sind.

    Ich persönlich bevorzuge meinen eigenen Temp Pfad, denn ersten kann ich dadurch sehr leicht sehen, ob Scripte "rumschweinen" und temporäre Dateien nicht beräumen und zweitens ich hab die hochgeladenen Dateien nur in meinem Domainspace und gebe die nicht für alle Kunden "temporär frei".
     
  4. upscho

    upscho New Member

    Registriert seit:
    26. September 2010
    Beiträge:
    2
    Zustimmungen:
    0
    Die Aussage, dass das vom Webhoster voreingestellte Tmp-Verzeichnis "im Normalfall" von mehreren Usern benutzt wird, halte ich für ein Gerücht. Aber vielleicht handelt es sich bei meinem Webhoster (Host Europe) ja um einen Glücksfall, denn dort hat jeder User definitiv ein nur von ihm benutztes Tmp-Verzeichnis (http://faq.hosteurope.de/index.php?cpid=15034). Eine Pfadangabe, die wie bei Host Europe die Benutzerkennung enthält, sollte allerdings auch bei anderen Webhostern ein Indikator dafür sein, dass man ein "privates" Tmp-Verzeichnis nutzen kann.

    Welche Rolle spielt es eigentlich, dass die Datei "diff.php" "nur zu WordPress hinzugefügt" ist? Wie man leicht durch eine Textsuche über alle in der WordPress-ZIP-Datei enthaltenen Dateien herausfinden kann, ist die genannte Stelle in "diff.php" die einzige, an der die Umgebungsvariable TMPDIR abgefragt wird. In den zu WordPress gehörenden Dateien wird sie gar nicht verwendet…

    Natürlich kann jeder soviel Konstanten oder Umgebungsvariablen in der wp-config.php definieren, wie er es für notwendig hält. Ich möchte mich allerdings mehr mit den Inhalten des Blogs und weniger mit seiner Konfiguration beschäftigen. Daher versuche ich, die Anpassungen in der Datei wp-config.php auf ein Minimum zu beschränken. Im Fall des Tmp-Verzeichnisses überlasse ich die Suche gerne WordPress, denn es besitzt durchaus - wie gezeigt - hierfür geeignete Mechanismen.
     
  5. blog_micky

    blog_micky Well-Known Member

    Registriert seit:
    28. August 2010
    Beiträge:
    333
    Zustimmungen:
    0
    Hi @codestyling,

    ich frage vorsichtshalber noch einmal nach! Ich würde es gerne so bevorzugen wie von Dir "vorgeschlagen" und die TMP-Dateien gezielt alle auf meinen Webspace leiten...

    Also um das zu erreichen leite ich jetzt mit

    putenv('TMPDIR='. ABSPATH .'tmp');
    define('WP_TEMP_DIR', ABSPATH . 'tmp');


    als Eintrag in der wp-config.php alles auf ein zuvor angelegtes, beschreibbares tmp Verzeichnis im Root um...?!?!

    Ist das jetzt so richtig oder habe ich was falsch verstanden...???

    Gruß blog_micky
     
  6. r23

    r23 Well-Known Member

    Registriert seit:
    9. Dezember 2006
    Beiträge:
    7.348
    Zustimmungen:
    588
    Vorsicht: das Verzeichnis sollte nicht über eine URL im Browser erreichbar sein!

    http://exmaple.org/tmp/deine_sicherheitslücke.php

    Lege das temp-Verzeichnis ausserhalb von deinem Documenten Root an, so, dass dein WebServer erst garnicht auf die Idee kommen kann - die Datei auszuliefern oder gar auszuführen.

    Des weiteren ist es aus meiner sicht sinnvoller, wenn man dies PHP überlässt ...

    Z.B, wenn PHP als Apachemodul läuft

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Wenn man die notwenigen Rechte nicht hat - einfach den Provider um die entsprechende Konfiguration bitten.

    PHP Konfiguration im Handbuch
    http://de2.php.net/manual/de/ini.core.php#ini.sect.file-uploads

    Dateiuploads und wie er funktioniert
    http://de2.php.net/manual/de/features.file-upload.php

    cu

    ralf
     
  7. blog_micky

    blog_micky Well-Known Member

    Registriert seit:
    28. August 2010
    Beiträge:
    333
    Zustimmungen:
    0
    Hallo @r23...

    okay das stimmt, inzwischen habe ich das auch erkannt und außerhalb dieses Forums ebenfalls noch einmal diskutiert...

    Ich habe nun außerhalb des Rootverzeichnisses auf meinem Server einen tmp-Ordner angelegt... In meinem Webpaket kann ich eigenständig die php.ini konfigurieren bzw. Änderungen oder Erweiterungen anlegen...

    Bisher ist die Variable "upload_tmp_dir"bei mir nicht gesetzt... Wenn ich sie jetzt setzen möchte, was muss ich den dann konkret dazu in der php.ini eingeben; Also das der tmp-Ordner außerhalb des Root grundsätzlich genutzt wird...?

    Gruß blog_micky
     
  8. blog_micky

    blog_micky Well-Known Member

    Registriert seit:
    28. August 2010
    Beiträge:
    333
    Zustimmungen:
    0
    Hi,

    okay, noch eine kleine Nachinfo: Ich habe jetzt per "upload_tmp_dir = /home/www/tmp/" in der php.ini den gesamten Temp-Kram nun direkt auf einen Ordner in meinem System umgeleitet und kann bisher keine Nachteile dadurch feststellen, außer dass der Ordner nicht regelmässig komplett geleert wird, es bleiben irgendwie immer Dateien zurück, die WP hinterlässt... Muss da noch mal schauen woran das liegen könnte!

    Gruß blog_micky
     
  9. loller7

    loller7 Member

    Registriert seit:
    23. September 2010
    Beiträge:
    15
    Zustimmungen:
    0
    Ich bekomme folgenden Fehlercode:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Und die dazugehörende Install.php

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Lösungsvorschläge ?

    Die install.php ist teil einer modifizierten WP Installation , die von Rockettheme um genau zu sein. Daher befindet sie sich im WP-Content Ordner was ja Sinn zu macen scheint.
     
  10. mfitzen

    mfitzen Well-Known Member

    Registriert seit:
    9. Juli 2006
    Beiträge:
    9.820
    Zustimmungen:
    2
    Und was war an dieser Antwort (vor allen Dingen am 2. Teil) so missverständlich? Wenn der Hoster die Funktionen deaktiviert hat, dann kannst Du hier noch 50 Threads zu ein und der selben Problematik aufmachen. Da kann Dir dann nur der Hoster helfen! Zumal ich nicht nachvollziehen kann, warum Du Dein Problem gerade in diesem Thread nochmal unterbringst!?
     
    #10 mfitzen, 15. Oktober 2010
    Zuletzt bearbeitet: 15. Oktober 2010
  11. loller7

    loller7 Member

    Registriert seit:
    23. September 2010
    Beiträge:
    15
    Zustimmungen:
    0
    Es hatte wenig mit dem Hoster zu tun.

    Das Problem ist gelöst siehe: www.thatsgaming.de

    Der config.php haben die Zeilen:

    putenv('TMPDIR=/var/www/web418/phptmp'); define('WP_TEMP_DIR', '/var/www/web418/phptmp');

    gefehlt.

    War das soo schwer ?

    Mein Gott. Das ist mein 2. Beitrag zum Thema und somit auch der letzte.
     
  12. mfitzen

    mfitzen Well-Known Member

    Registriert seit:
    9. Juli 2006
    Beiträge:
    9.820
    Zustimmungen:
    2
    Okay sorry, dann lag ich falsch. Passiert mir hin und wieder schonmal. Und ja, scheinbar war es schwer (zumindest für mich), denn ansonsten hätte ich die richtige Lösung schon längst genannt.
     
  13. loller7

    loller7 Member

    Registriert seit:
    23. September 2010
    Beiträge:
    15
    Zustimmungen:
    0
    Hat ja schlussendlich noch ein gutes Ende gefunden.

    Vileicht sollte man das irgendwie aufführen, ist ja jezt nicht soo leicht darauf zu kommen.

    Vorallem die, die ihren Host bei Alfahosting haben " der zwar ein stets SEHR gutes angebot bietet" was WP anbelangt aber nicht sehr freundlich ist.

    Die sind da eher Joomla! getrimmt.

    Mit freundlichen Grüßen
    loller7 aka. NerooLive :D
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden