file_get_contents - nur externe URLs funktionieren

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

  • file_get_contents - nur externe URLs funktionieren

    Hallo zusammen,

    ich habe das Problem, dass ich mir mit file_get_contents($url) Dateien gecacht habe. Nun funktioniert dieser Befehl von den einen auf den anderen Tag nicht mehr (auch an ganz anderen Stellen).
    (SERVER 1) => timeout trotz vorhandener Datei.

    Aber - nur intern! Rufe ich einen anderen Server auf (SERVER 2), auf dem ich eine Beispieldatei habe, bekomme ich das Ergebnis sofort geliefert.

    Ich habe auch noch folgenden Test gemacht:
    Ein Script, dass den Befehl (file_get...) aufruft, habe ich auf dem anderen Server (SERVER 2). Dieses holt sich die Dateien von SERVER 1 und es funktioniert.

    Nachdem ich mit dem zuständigen Server-Admin keine Lösung gefunden habe, schreibe ich nun hier. Er hat mir versichert, dass die Firewall nicht eigene Anfragen blockiert. (Wahrscheinlich geht dies auch gar nicht?!)

    Jedenfalls werden interne Abfragen gar nicht erst beantwortet (timeout), wenn sie jedoch von außen kommen geht alles.

    Kann das am DNS liegen?
    Die URLs rufe ich über den Domainnamen auf. (z.B. http://www.xyz.de/kategorie/seite1.html)

    Warum geht das nicht mehr intern, obwohl es eine Zeit lang funktioniert hat?
    Und vor allem, wie schalte ich diesen "Blocker" aus. Die Firewall ist es angeblich ja nicht.

    Vielen Dank im Voraus

  • #2
    Warum greifst du überhaupt intern mittels HTTP zu? Wozu der Umweg über den Webserver?

    Kommentar


    • #3
      Hallo H3ll,

      weil die URLs per .htaccess umgeschrieben werden. Das Ganze redirected dann zu einer PHP-Datei, die ich geparst (inkl. aller $_SERVER-Variablen usw.) benötige.
      Die einzelnen files brauchen machnmal etwas länger, bis sie generiert sind. Da die Daten sich aber fast nur täglich ändern, habe ich einen Cronjob, der das PHP-Script täglich aufruft.
      Dieses ruft dann die zu cachenden Dateien ab und speichert den zurückgegebenen Sting in einer HTML-Datei, die ich dann einfach includen kann.

      Hat auch ne Zeit lang geklappt, nur läuft es jetzt -aus mir nicht ersichtlichen Gründen- nicht mehr.

      Achso, wget kann ich nicht nehmen, weil exec verboten ist

      Kommentar


      • #4
        Zitat von nullacht15 Beitrag anzeigen
        weil die URLs per .htaccess umgeschrieben werden. Das Ganze redirected dann zu einer PHP-Datei, die ich geparst (inkl. aller $_SERVER-Variablen usw.) benötige.
        Die einzelnen files brauchen machnmal etwas länger, bis sie generiert sind. Da die Daten sich aber fast nur täglich ändern, habe ich einen Cronjob, der das PHP-Script täglich aufruft.
        Ziemlich umständlich. Warum erstellst du den Cache nicht nach bedarf? Also erst, wenn jemand auf eine bestimmte Seite zugreift? Das ist die allgemeine Vorgehensweise bei einem Cache.

        Kommentar


        • #5
          Weil ich keinem Benutzer die Ladezeiten zumuten kann, die sind nämlich bei dem Server sehr hoch. (30 sek. manchmal mehr)

          Das nächste Problem ist, dass ich diese Funktion an einer weiteren Stelle brauche.

          Ich muss also den Grund wissen, warum ich im Script nicht nach außen übers http nach innen zur Ziel URL komme. Irgendetwas scheint mich da bzw. meinen Request zu ignorieren, deshalb der Timeout.

          Kommentar

          Lädt...
          X