wget/curl bei PHP Dateien auf Webspace

  • Wenn ich per wget oder curl eine PHP Datei vom Webhosting 2000 Webspace ziehe wird die erste Zeile verschluckt.

    nano test.php

    Inhalt:

    #z1

    #z2

    #z3

    gehe ich nun auf einen anderen Server oder meine Windows Workstation und benutze

    curl https://server/test.php

    kommt folgendes an:

    #z2

    #z3


    mit

    wget https://server/test.php

    sehe ich auch, dass die Datei die ankommt kleiner geworden ist.

    Was ist hier los?

    Ich habe heute auch einen Webspace bei 1&1 angelegt. Dort tritt das gleiche Problem auf.

    Danach hab ich mit meinem selbst aufgesetzten Debian 9.5 Webserber mit nginx und PHP 7.0.30-0+deb9u1 getestet, und dort tritt das Problem nicht auf!

  • Enthält die erste Zeile womöglich PHP-Tags oder ähnliches, die auf deinem eigenen nginx nicht ausgeführt werden und somit ausgeliefert werden? zB. weil der short-Tag benutzt wird? Der ist ja bei PHP7 standardmäßig deaktiviert. Ich glaube unter dem Webhosting läuft (wenn man es nicht umstellt) glaube ich PHP5.

    (Korrigiert mich, wenn ich falsch liege)

    Meine Minecraft-Plugins auf SpigotMC (Open Source): www.spigotmc.org/members/mfnalex.175238/#resources

    Discord: discord.jeff-media.com

  • Steht dort wirklich ein Rautezeichen am Anfang der ersten Zeile, die verschluckt wird? Dann wird es eventuell als Shebang interpretiert und dementsprechend heraus gefiltert: https://de.wikipedia.org/wiki/Shebang

    Bitte teste es nochmals mit einem anderen Inhalt. Das unterschiedliche Verhalten lässt sich eventuell dadurch erklären, dass PHP bei den getesteten Systemen anders eingebunden ist. (mod_php, CGI, FastCGI, FPM, …)

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Hay,

    vielleicht sollte man mal fragen, was das ganze soll... willst Du den Inhalt der php-Datei oder den erzeugten Output der php-Datei?

    So bekommst Du den Output, d.h. das, was vom Webserver daraus gemacht wird - weil der handler (bei dem Verhalten also vermutlich ein CGI-Handler) für php weiß, dass es eine ausführbare Datei ist, findet das "#" in der ersten Zeile, weil das ein Shebang aussieht, findet keinen Interpreter dafür, schmeißt die (ungültige) Zeile weg und schickt den Rest als Output.

    Wenn Du die php-Datei als solche willst, bekommst Du nicht per wget oder curl, sondern nur durch eine "echte" Übertragung wie ftp...

    CU, Peter

    Peter Kleemann // https://www.pkleemann.de // +49 621 1806222-0 // Kann Programme, Internet, Netzwerke und Telefon.

  • Hay,

    Oder indem er die Datei in ".php.txt" umbenennt für die Übertragung per HTTP

    lol, oder so.

    Anstatt eine Schraube zu nehmen, nimmt man einen Nagel und schlägt ihn mit dem Griff des Schraubenziehers in die Wand. Tut weh (dem Betrachter noch mehr als dem Nutzer), kann man aber so machen.

    Im Moment ist es für mich aber eher eine Datei mit Owner schroedinger:katze: Ob wirklich eine .php oder doch nur eine getarnte .txt bleibt offen, deswegen fragte ich nach dem Hintergrund.

    CU, Peter

    Peter Kleemann // https://www.pkleemann.de // +49 621 1806222-0 // Kann Programme, Internet, Netzwerke und Telefon.