mixmastertobsi: PHP fopen ohne Fehlermeldung

Hallo,

wir sind zu einem neuen Server gewechselt, bei welchem eigentlich alles gleich ist, bis auf das Betriebssystem. Davor war Ubuntu 14.04 und nun sind wir auf 16.04.

Nun das Problem, denn eine PHP Funktion klappt nicht mehr und in den Logs steht auch nichts.

Mit fopen versuche ich eine Datei auf einen entfernten Server zu schreiben. Die SFTP Verbindung wird auch noch problemlos aufgebaut, doch leider wird die Datei nicht geschrieben. In den Logs finde ich nichts und auch in den Skript wird kein Error ausgegeben. Hat jemand eine Idee?

$sftp = ssh2_sftp($connection);
$resFile = fopen("ssh2.sftp://{$sftp}/data/edi/da30033222/in/test.xml", 'w');
  1. Hallo

    Hast du das Error-Reporting auf dem neuen Server aktiviert? Wie sehen die Einstellungen für den Zugriff auf entfernte Ressourcen in der php.ini aus?

    Siehe dazu auch die PHP-Doku zu fopen, Parameter filename, Block „Hinweis“.

    Tschö, Auge

    --
    Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
    Toller Dampf voraus von Terry Pratchett
    1. Also es war ein BUG von PHP7.

      https://stackoverflow.com/questions/40921520/php-7-ssh2-sftp-stat-bug-work-around

      mit intval($sftp) geht es nun

      1. Hallo

        Also es war ein BUG von PHP7.

        Wenn ich mich auf den Inahlt des von dir verlinkten Issues auf Stackoverflow verlasse, ist es eben kein BUG.

        https://stackoverflow.com/questions/40921520/php-7-ssh2-sftp-stat-bug-work-around

        Die Antwort zitiert und verweist auf diesen Blogeintrag zu einem Bug.

        „PHP 5.6.28 (and apparently 7.0.13) introduced a security fix to URL parsing, that caused the string interpolation of the $sftp resource handle to no-longer be recognized as a valid URL. In turn, that causes opendir(), readdir(), etc. to fail when you use an $sftp resource in the path string, after an upgrade to one of those PHP versions.“

        Es handelt sich also mitnichten um einen Bug, sondern um die Folge der Behebung eines Bugs. Die führte zu einer Verhaltensänderung, in die du nun hineingestolpert bist. Die Lösung hast du ja nun.

        Tschö, Auge

        --
        Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
        Toller Dampf voraus von Terry Pratchett