2009-06-02 4 views
2

ich ein PHP-Skript müssen URL, die der gleichen Website RSS-Feed verarbeiten muss. Insbesondere zeige ich die neuesten Blogs aus dem WordPress-RSS-Feed auf der Startseite an. Auf unserem Staging-Server lief es einwandfrei, aber auf unserer Live-Hosting-Umgebung (die eine komplett andere LAMP-Umgebung ist) funktioniert es nicht.file_get_contents oder curl verwenden auf demselben Server

Ich kann file_get_contents oder curl auf einem Remote-URL gut laufen, aber wenn ich versuche, unsere eigenen RSS-Feed abzurufen, ich bin eine 404 nicht gefunden Seite zurückgegeben. Eine andere Kuriosität, wenn ich versuche, file_get_contents(http://domain.com/test.txt) schlägt es mit einem 404 fehl, aber wenn ich mache, bekomme ich den Inhalt der Testtextdatei. Das ist alles, vorausgesetzt, ich das Skript von domain.com renne (nicht www.domain.com)

Ich habe ein Setup-Beispiel hier: http://bkwld.com/test.php

+0

Ist es möglich, dass entweder www.bkwld.com oder bkwld.com in/etc/hosts einrichten? –

Antwort

2

Ok, ich weiß noch nicht, warum zum Teufel sie dies tut, aber ich werde es lösen, indem sie meinen Feed durch Feedburner laufen und dann RSS-Feeds ist es das Parsen. Da es sich um eine Remotedomäne handelt, funktioniert es in meinen Tests. Nicht ideal, aber w/e.

1

Ich hatte ein sehr ähnliches Problem - Sie könnten versuchen, mit 127.0.0.1 anstelle Ihres eigenen Domain-Namens (vorausgesetzt, Ihr Apache-Setup verhindert dies nicht). Etwas mit Domain-Auflösung zu tun, glaube ich, Laune der API.

+3

Dies würde vollständig fehlschlagen, wenn die Website auf einem VirtualHost ist. – grawity

+0

Ja, ich bin leider. – weotch

+1

Wissen Sie, dass Ihr virtualhost eingerichtet wurde, um www.domain.com und domain.com miteinander zu verbinden? Ja – Kazar

0

In der Tat, seltsam. Wie werden Sie die Datei analysieren? Sie können es vielleicht direkt in SimpleXML laden;

Ich weiß, dass dieser Ansatz Ihr Problem nicht löst, Sie verwenden nur einen anderen Ansatz - aber vielleicht ist es genug für Sie.

+0

Ja, ich wurde mit der Zend Framework Zend_Feed_Rss() vor, und das ist fehlgeschlagen. In diesem Fall habe ich versucht, mit file_get_contents und CURL zur Quelle zu gelangen – weotch

1

Ich hatte gerade dieses ähnliches Problem. Das DNS ist das Problem, es löst Ihren Domain-Namen nicht auf. Sie sollten die IP-Adresse anstelle der Domäne in Ihren Skripts verwenden.

Sie können Ihre Domain in cmd ping und dass die IP verwenden.

0

Wenn domain.com/test.txt liefert 404 und www.domain.com/test.txt gelingt es dem Host-DNS könnte Domänen unterschiedlich konfiguriert gehostet haben. Ich bin mir jedenfalls sicher, dass Sie bereits versucht haben, den RSS-Feed mit "www" abzurufen, aber haben Sie einen relativen Pfad versucht? zB: file_get_contents('../../feed/')