readfile() Fehler bei Port 8080

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • readfile() Fehler bei Port 8080

    buon giorno,

    readfile() scheint bei mir den Port 8080 nicht zu mögen. Ich habe eine Art Proxy, möchte mit readfile() auf localhost:8080 zugreifen, dort läuft bei mir ein Tomcat (aber das ist egal). das ergibt
    Code:
    Warning: readfile(http://localhost:8080/my/resource/modules?a=bb) [function.readfile]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/statics/myproxy.php on line 11
    Script (gekürzt):
    PHP-Code:
    <?php
    $base 
    'http://localhost:8080/my/resource/modules?';

    $querystring $_SERVER[QUERY_STRING];
    $proxyURL $base.$querystring;

    readfile($proxyURL);    
    ?>
    404 verstehe ich hier nicht. Die Resource http://localhost:8080/my/resource/modules?a=bb ist doch da, zumindest im Browser.

    Mit einer Resource auf Port 80 geht's dann:

    PHP-Code:
    $base "http://localhost/statics/blah/news.php?"
    zur php.ini: allow_url_fopen ist auf "On":

    Code:
    cat /etc/php5/apache2/php.ini | grep url
    allow_url_fopen = On
    allow_url_include = Off
    url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
    ..
    Die error.log und access.log geben auch keine Auskunft.

    System:
    PHP Version 5.3.2-1ubuntu4.9
    Ubuntu 10

  • #2
    "HTTP/1.1 404 Not Found" sagt eigentlich alles. Das hat mit dem Port nichts zu tun. Die Meldung kommt vom HTTP-Server und nicht von PHP.

    Kommentar


    • #3
      ok, aber warum lässt sich diese URL dann im Browser aufrufen ?...

      Kommentar


      • #4
        Was ist wenn du es mit wget vom Server aus probierst?

        Kommentar


        • #5
          ist fopen_wrappers den aktiviert, sonst scheitert es schon daran, dass es eine URL ist

          Mit dieser Funktion können Sie eine URL als Dateinamen verwenden, falls Sie fopen wrappers ermöglicht haben.......

          Kommentar


          • #6
            Problem gelöst.
            Ich hab keine Ahnung warum, aber nun funkts plötzlich.
            Das Script liefert mimetype
            Code:
            "Content-type: application/json"
            (das hatte ich nicht erwähnt). Diese JSON Daten sind jetzt valide (im Gegensatz zu vorher). Warum aber invalide JSON Daten zu 404 führen bleibt schleierhaft. egal.

            Hintergrund ist, ich habe lokal einen Ajaxaufruf, welcher diese Resource auf Port 8080 lesen soll. Der Port 8080 führt zur Verletzung der Same-Origin-Policy von Ajax. Daher der Proxy. Das war aber gar nicht das Problem. egal.

            danke für die Antworten

            Kommentar


            • #7
              Wie schafft man es invalide JSON-Daten zu erzeugen? Das macht doch eh die jeweilige Programmiersprache automatisch.

              Kommentar


              • #8
                durch XSL Transformation. Das Format JSON ansich ist einfach. Bei der Transformation aber gibts einiges zu beachten. Naja da hatten sich einige Fehler eingeschlichen.

                ist fopen_wrappers den aktiviert, sonst scheitert es schon daran, dass es eine URL ist
                @Sysop
                wie im 1. Post geschrieben:
                PHP-Code:
                allow_url_fopen On 
                genügt das nicht?

                Kommentar


                • #9
                  Nun,
                  Im Browser kann man einstellen, dass localhost den Proxy umgehen soll. Aktiviere das mal, vielleicht versucht PHP die Datei vom Proxy zu laden, wenn dieser sie schon aus dem cache gelöscht hat.

                  Kommentar

                  Lädt...
                  X