Ergebnis 1 bis 15 von 15

Thema: Unable to write to the temporary system directory

  1. #1
    Contao-Nutzer
    Registriert seit
    15.05.2012.
    Beiträge
    24

    Standard Unable to write to the temporary system directory

    Hallo allerseits,

    ich versuche, Contao in einem Shared Hosting bei TEQneers (Linux/PHP7.4) zu installieren. Beim Aufruf des Contao Managers (1.5.5) kommt der Fehler "Unable to write to the temporary system directory."
    Hier ist das schon mal für HE besprochen worden. Mit dem Lösungsansatz in diesem Thread komme ich nicht weiter, denn phpinfo gibt mir unter "sys_temp_dir" nur "no value" aus.
    Was mich erstaunt: Der Support des Hosters behauptet, dass das Verzeichnis beschreibbar wäre und wenn ich spaßeshalber mal den alten Contao-Check dort laufen lasse, kommt unter "System Temp Verzeichnis" das Ergebnis "Das System Temp Verzeichnis ist beschreibbar."
    Ist das eventuell doch ein Problem des Managers?

    Viele Grüße & guten Start in die Woche!
    Steff

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.088
    Partner-ID
    10107

    Standard

    Das deutet darauf hin, dass die PHP Konfiguration nicht korrekt ist, wenn ein CLI Prozess über den Web Prozess ausgeführt wird.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    15.05.2012.
    Beiträge
    24

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Das deutet darauf hin, dass die PHP Konfiguration nicht korrekt ist, wenn ein CLI Prozess über den Web Prozess ausgeführt wird.
    Das ist auch meine Vermutung, hatte schon im Vorfeld lange Diskussionen mit dem Support, weil der Hoster der Meinung ist, dass man "allow_url_fopen" nie,nie,nie anschalten dürfte
    Was mich aber erstaunt ist, dass Contao Check und Hoster sagen, das Verzeichnis wäre beschreibbar.

  4. #4
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.088
    Partner-ID
    10107

    Standard

    Zitat Zitat von FrischBlau Beitrag anzeigen
    Was mich aber erstaunt ist, dass Contao Check und Hoster sagen, das Verzeichnis wäre beschreibbar.
    Der Contao Check erzeugt auch keinen separaten Prozess, wo dann die PHP CLI genutzt wird.
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.077
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Kann man testen, indem man zwei PHP-Scripte erzeugt und in der document root ablegt.

    Script 1 versucht in das temporäre Verzeichnis zu schreiben
    Script 2 ruft Script 1 per exec() oder passthru() auf

    Dann ruft man im Browser Script 2 auf und sieht dann (vermutlich), dass das Schreiben fehlschlägt.

  6. #6
    Contao-Nutzer
    Registriert seit
    15.05.2012.
    Beiträge
    24

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Der Contao Check erzeugt auch keinen separaten Prozess, wo dann die PHP CLI genutzt wird.
    Ja, argumentativ habe ich trotzdem gerade ein Patt. Hoster sagt, alles ist korrekt eingerichtet, ich sage nein. Hast Du einen Tipp für den Support?

    Danke
    Steff

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.088
    Partner-ID
    10107

    Standard

    Zitat Zitat von FrischBlau Beitrag anzeigen
    Hast Du einen Tipp für den Support?
    Ja, das was tab geschrieben hat: https://community.contao.org/de/show...l=1#post558389
    » sponsor me via GitHub or PayPal or Revolut

  8. #8
    Contao-Nutzer
    Registriert seit
    15.05.2012.
    Beiträge
    24

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Kann man testen, indem man zwei PHP-Scripte erzeugt und in der document root ablegt.

    Script 1 versucht in das temporäre Verzeichnis zu schreiben
    Script 2 ruft Script 1 per exec() oder passthru() auf

    Dann ruft man im Browser Script 2 auf und sieht dann (vermutlich), dass das Schreiben fehlschlägt.
    Hallo tab,

    die Idee ist klar, ich glaub, ich scheitere aber gerade an der Umsetzung :-(

  9. #9
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.742
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wenn der Hoster, dem Nachweis mit dem Script nicht folgt, hast Du m.E. keine Chance. Dann bleibt nur Hosterwechsel.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  10. #10
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.077
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich bin jetzt nicht der große PHP-Programmierer, aber ich denke mal sowas sollte es tun
    PHP-Code:
    <?php
    // write_temp.php
    $temp tmpfile();
    fwrite($temp"schreiben in Temporärdatei");
    fseek($temp0);
    echo 
    fread($temp1024);
    fclose($temp); // dies entfernt die Datei
    PHP-Code:
    <?php
    // execute_write_temp.php
    passthru('<pfad zum PHP-CLI binary>/php '.__DIR__.'/write_temp.php');
    Teile zusammengeklaut aus dem PHP-Manual und von ausi ...

    Ungetestet! Besser wäre sicher noch eine Fehlerbehandlung, wenn tmpfile() oder fwrite() false zurückgeben. Ansonsten knallt es halt etwas wenn die Datei nicht erzeugt oder nicht in sie geschrieben werden kann

  11. #11
    Contao-Nutzer
    Registriert seit
    15.05.2012.
    Beiträge
    24

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Ich bin jetzt nicht der große PHP-Programmierer, aber ich denke mal sowas sollte es tun
    PHP-Code:
    <?php
    // write_temp.php
    $temp tmpfile();
    fwrite($temp"schreiben in Temporärdatei");
    fseek($temp0);
    echo 
    fread($temp1024);
    fclose($temp); // dies entfernt die Datei
    PHP-Code:
    <?php
    // execute_write_temp.php
    passthru('<pfad zum PHP-CLI binary>/php '.__DIR__.'/write_temp.php');
    Teile zusammengeklaut aus dem PHP-Manual und von ausi ...

    Ungetestet! Besser wäre sicher noch eine Fehlerbehandlung, wenn tmpfile() oder fwrite() false zurückgeben. Ansonsten knallt es halt etwas wenn die Datei nicht erzeugt oder nicht in sie geschrieben werden kann
    Vielen Dank! Ich probier das mal aus.

  12. #12
    Contao-Nutzer
    Registriert seit
    15.05.2012.
    Beiträge
    24

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Ich bin jetzt nicht der große PHP-Programmierer, aber ich denke mal sowas sollte es tun
    PHP-Code:
    <?php
    // write_temp.php
    $temp tmpfile();
    fwrite($temp"schreiben in Temporärdatei");
    fseek($temp0);
    echo 
    fread($temp1024);
    fclose($temp); // dies entfernt die Datei
    PHP-Code:
    <?php
    // execute_write_temp.php
    passthru('<pfad zum PHP-CLI binary>/php '.__DIR__.'/write_temp.php');
    Teile zusammengeklaut aus dem PHP-Manual und von ausi ...

    Ungetestet! Besser wäre sicher noch eine Fehlerbehandlung, wenn tmpfile() oder fwrite() false zurückgeben. Ansonsten knallt es halt etwas wenn die Datei nicht erzeugt oder nicht in sie geschrieben werden kann
    Hallo tab,

    hab das getestet, als output bekomme ich nur eine leere Seite. Dann zur Sicherheit noch mal das Script von Spooky hier getestet. Da bekomme ich als Output
    PHP-Code:
    string(4"/tmp" string(4"test" 

  13. #13
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.077
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hmm, kann sein, dass einfach kein Fehler geworfen wird. Das Skript von Spooky kannte ich jetzt noch nicht (oder hatte es schon wieder verdrängt) Ich muss mal probieren, was auf einem korrekt eingestellten System dabei rauskommt. Auf den ersten Blick würde ich vermuten, dass der Pfad und der String jeweils zweimal ausgegeben werden. Ich probier es mal eben.

  14. #14
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.077
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Hmm, kann sein, dass einfach kein Fehler geworfen wird. Das Skript von Spooky kannte ich jetzt noch nicht (oder hatte es schon wieder verdrängt) Ich muss mal probieren, was auf einem korrekt eingestellten System dabei rauskommt. Auf den ersten Blick würde ich vermuten, dass der Pfad und der String jeweils zweimal ausgegeben werden. Ich probier es mal eben.
    Ja, mit dem Skript von @Spooky kommt bei mir der Pfad und der Teststring jeweils zweimal. Das würde dann aber heissen, bei dir wird eine Ausgabe ohne Fehlermeldung verschluckt.
    Bei meinen Skripten kommt bei mir jeweils einmal "schreiben in Temporärdatei", egal ob ich write_temp.php oder execute_write_temp.php im Browser aufrufe.

    Gibt es irgendwelche passenden Einträge in den Logdateien (PHP)? Ich habe jetzt mal bei meinem Skript eine Fehlerbehandlung ergänzt, kannst ja mal versuchen, die Datei write_temp.php zu ersetzen durch

    PHP-Code:
    <?php
    // write_temp.php
    $temp tmpfile();
    if (
    $temp !== false)
    {
      
    $retc fwrite($temp"Schreiben in Temporärdatei");
      if (
    $retc !== false) {
        
    fseek($temp0);
        echo 
    fread($temp1024);
      }
      else {
        echo 
    "Fehler beim Schreiben in die Temporärdatei";
      }
      
    fclose($temp); // dies entfernt die Datei 
    }
    else {
      echo 
    "Fehler beim Erzeugen der Temporärdatei";
    }

  15. #15
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.088
    Partner-ID
    10107

    Standard

    Füge am Anfang der PHP Dateien auch noch folgendes ein:
    PHP-Code:
    ini_set('display_errors'1);
    ini_set('display_startup_errors'1);
    error_reporting(E_ALL); 
    » sponsor me via GitHub or PayPal or Revolut

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •