| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

24-03-2009, 09:56
|
|
TriphunEM
Registrierter Benutzer
|
|
Registriert seit: Jun 2003
Beiträge: 538
|
|
[PHP5] Kann serverseitig nicht auf Webseiten zugreifen
Hallo,
ich hab ein Problem und weiß absolut nicht weiter.
Ich hab einen Windows 2008 Server mit IIS 7 und PHP 5.2.9 darauf laufen.
Soweit funktioniert das auch super!
Allerdings kann über mein PHP-Skript, also quasi serverseitig keine Webseiten aufrufen, egal ob die extern liegen oder lokal auf meinem Server.
Wenn ich z.B. eine Seite auf meinem Server über file_get_contents() aufrufe, bekomm ich folgende Fehlermeldung:
Zitat:
|
[function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in C:\inetpub\wwwroot\includes\klasse.class.php on line 227
|
wenn ich es über cUrl versuche:
Das gleiche Verhalten ist auch auf einem Windows 2003 Server mit Apache und PHP aufgetreten.
Ich schlussfolger daraus, dass es was mit den Rechten vom Windows Server zu tun hat, aber ich hab schon Stunden gesucht und nix gefunden!
In der php.ini ist "allow_url_fopen" auch auf "On"!
Weiß jemand wo der Fehler liegt und kann mir weiterhelfen? Danke!
|

24-03-2009, 10:07
|
|
hhcm
PHP Senior
|
|
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
|
|
Das wird nicht an deiner Konfiguration liegen, sondern eher am Status 500 der gegenseite.
Ruf die Seite die du versuchst zu lesen mal im Browser auf.
__________________
gruss Chris
Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
|

24-03-2009, 10:21
|
|
TriphunEM
Registrierter Benutzer
|
|
Registriert seit: Jun 2003
Beiträge: 538
|
|
Nein, liegt es nicht.
Wenn ich den Link im Browser aufrufe, den ich mit file_get_contents() holen will, geht das im Browser ohne Probleme!
?
|

24-03-2009, 10:40
|
|
hhcm
PHP Senior
|
|
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
|
|
Es liegt trotz allem nicht an dem Script, sondern an der gegenstelle. Ein 500 fehler ist kein Client Problem.
__________________
gruss Chris
Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
|

24-03-2009, 10:43
|
|
asp2php
Banned
|
|
Registriert seit: Feb 2004
Beiträge: 11.746
|
|
Ist im URI irgendwelche Sonderzeichen, z.B. Leerzeichen? Wenn ja, hast du die URI vorher mit urlencode behandelt?
|

24-03-2009, 10:49
|
|
hhcm
PHP Senior
|
|
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
|
|
Ich wollte gerade noch ähnliches hinzufügen.
Falls du etwas wie
PHP-Code:
file_get_contents('http://example.com/?'.$parameter);
benutzt, wäre es Vorteilhaft sich das Ergebnis vorher mal anzusehen.
PHP-Code:
$url = 'http://example.com/?'.$parameter;
echo $url;
file_get_contents($url);
Falls die Url statisch ist, trotz allem mal auf Sonderzeichen achten.
__________________
gruss Chris
Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
|

24-03-2009, 10:51
|
|
TriphunEM
Registrierter Benutzer
|
|
Registriert seit: Jun 2003
Beiträge: 538
|
|
Ja, wird halt ein Sicherheitsproblem beim Windows 2008 Server bzw. IIS 7 sein.
Nur welches?
Und egal ob ich das Script mit http://Servername/ oder http://localhost/ aufrufe, serverseitig geht da garnix.
Aber clientseitig über den Browser ohne Probleme!
file_get_contents() nutze ich eigentlich auch garnicht. nur zum Testen.
Ich nutz cUrl, aber auch damit gehts nicht...
Der Link enthält keiner Sonderzeichen, der ist vollkommen in Ordnung. Ich lass mir den Link in der Error-Ausgabe mit ausgeben. und wenn ich den im Browser öffne, klappt das ohne Problem!
Geändert von TriphunEM (24-03-2009 um 10:54 Uhr)
|

24-03-2009, 10:57
|
|
hhcm
PHP Senior
|
|
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
|
|
Und WIE versuchst du es über curl ?
__________________
gruss Chris
Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
|

24-03-2009, 11:52
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Evtl. möchte die Gegenstelle einen bestimmten Request-Header wie z.B. den User-Agent sehen, bevor er sich die Mühe macht was auszuliefern
Zitat:
Original geschrieben von TriphunEM
Ja, wird halt ein Sicherheitsproblem beim Windows 2008 Server bzw. IIS 7 sein.
|
Nein - mit ziemlich hoher Wahrscheinlichkeit nicht.
Geändert von Quetschi (24-03-2009 um 11:57 Uhr)
|

24-03-2009, 12:53
|
 |
fireweasel
Registrierter Benutzer
|
|
Registriert seit: Sep 2008
Ort: At home
Beiträge: 680
|
|
Zitat:
Original geschrieben von TriphunEM
Nein, liegt es nicht.
Wenn ich den Link im Browser aufrufe, den ich mit file_get_contents() holen will, geht das im Browser ohne Probleme!
?
|
Dann schau dir doch mal die HTTP-Header an, die der Browser sendet, um an die Web-Seite zu kommen. Für'n FireFox gibts dafür Erweiterungen wie LiveHTTPHeaders oder TamperData.
__________________
PHP-Code:
class Brick implements Throwable {
// ...
}
|

24-03-2009, 12:56
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Oder per Telnet einfach mal einen "Minimal"-Request absetzen und gucken ob dann wieder der 500er Response kommt.
|

24-03-2009, 13:52
|
|
TriphunEM
Registrierter Benutzer
|
|
Registriert seit: Jun 2003
Beiträge: 538
|
|
Naja ich denke meine Curl-Anfrage kommt den des Browser schon sehr nah:
PHP-Code:
public function ax_openSite($strUrl) {
$arrHeader = array();
$arrHeader[] = 'User-Agent: '.$_SERVER['HTTP_USER_AGENT'];
$arrHeader[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$arrHeader[] = 'Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3';
$arrHeader[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7';
$arrHeader[] = 'Keep-Alive: 300';
$arrHeader[] = 'Proxy-Connection: keep-alive';
$objCUrl = curl_init();
curl_setopt($objCUrl, CURLOPT_URL, $strUrl);
curl_setopt($objCUrl, CURLOPT_HTTPHEADER, $arrHeader);
curl_setopt($objCUrl, CURLOPT_HEADER, true);
curl_setopt($objCUrl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($objCUrl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($objCUrl, CURLOPT_TIMEOUT, 10);
//curl_setopt($objCUrl, CURLOPT_PROXY, 's01');
//curl_setopt($objCUrl, CURLOPT_PROXYPORT, 8080);
$strPageContent = curl_exec($objCUrl);
if (curl_error($objCUrl)) {
$this->ax_addError(curl_error($objCUrl).' ('.$strUrl.')');
return false;
}
curl_close($objCUrl);
return $strPageContent;
}
|

24-03-2009, 14:04
|
|
TriphunEM
Registrierter Benutzer
|
|
Registriert seit: Jun 2003
Beiträge: 538
|
|
Das hab ich mal zu dem gleichen Problem zu IIS 6 gefunden. Allerdings unterscheidet sich das ziemlich stark zu 7er Version
http://www.iishacks.com/index.php/20...ents-on-iis-6/
|

24-03-2009, 14:09
|
|
hhcm
PHP Senior
|
|
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
|
|
Abgesehen davon, glaube ich nicht das "Couldn't found host" die geworfene Fehlermeldung ist.
__________________
gruss Chris
Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
|

24-03-2009, 14:36
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Kopfkratz - vielleicht möchte bei Verwendung von HTTP1.1 Curl noch den Host-Header gesondert mitübergeben haben?
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|