DSM 5 - PHP Seiten funktionieren nicht mehr korrekt - kein curl oder file_get_content

Status
Für weitere Antworten geschlossen.

cmdr_tom

Benutzer
Mitglied seit
24. Jul 2010
Beiträge
208
Punkte für Reaktionen
2
Punkte
24
Hallo,

ich bin am verzweifeln. Seitdem ich auf DSM 5 umgestellt habe, funktionieren auf meinen PHP Seiten Aufrufe wie z.B. file_get_contents oder exec("curl http://www.wurscht.de") nicht mehr. Ich habe schon in der php.ini nachgesehen - dort ist "allow_url_fopen= ENABLE" eingetragen. Sollte also funktionieren. Ich hab keinen Schimmer woran es liegen könnte. Ich habe sogar testweise mal den "http" User in die root Gruppe geschmissen. Das brachte auch keine Abhilfe. Es ist, als ob der http User nicht nach draußen darf. :(

Wenn ich den Befehl im SSH absetze funktioniert das tadellos.
 

cmdr_tom

Benutzer
Mitglied seit
24. Jul 2010
Beiträge
208
Punkte für Reaktionen
2
Punkte
24
Hi,

leider brachte der Beitrag keine Abhilfe. Ich bin jedoch ein wenig schlauer. Offenbar kann der http User keine DNS-Auslösung ausführen. Ich habe einfach folgenden Code in eine PHP Seite gepackt:

<?php

$name = gethostbyname("www.google.com");
echo $name;
?>
<hr />
<?php
$f=fsockopen('www.google.com',80,$errno,$errstr,5);
?>

Direkt im SSH mit root User erhalte ich folgende Ausgabe:
173.194.112.208<hr />

Rufe ich die Seite via Browser auf bekomme ich nur folgendes:
www.google.com

Der Name wird einfach nicht richtig aufgelöst. Im Log sehe ich folgende Meldung dazu:

[Thu Apr 17 12:22:11 2014] [error] [client XX.XXX.XXX.XXX] FastCGI: server "/php-fpm-handler" stderr: PHP message: PHP Warning: fsockopen(): unable to connect to www.google.com:80 (php_network_getaddresses: gethostbyname failed. errno=11) in /volume1/web/test.php on line 8

Das kann doch nicht sein - ich finde auch nur immer wieder den Hinweis mit "allow_url_fopen = 1". Das ist jedoch definitiv eingeschaltet. Hat noch irgendwer welche Ideen?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
und wenn du zum Vergleich die IP von Google reinhaust geht die Verbindung?
 

cmdr_tom

Benutzer
Mitglied seit
24. Jul 2010
Beiträge
208
Punkte für Reaktionen
2
Punkte
24
Langsam glaube ich wirklich, dass das ein Bug ist, denn ich habe das Ganze mit folgenden zwei Methoden gelöst:

function Get_IP($hostname)
{
$nslookup = exec("nslookup ".$hostname." 8.8.8.8");
//Jetzt bekommen wir solch eine Ausgabe
//0.0.0.0 chello00000000000.00.00.vie.surfer.at
preg_match("/[0-9]+.[0-9]+.[0-9]+.[0-9]+/", $nslookup, $ip);
return $ip[0];
}


function Get_HTML($url, $host)
{
$context = stream_context_create(array(
'http' => array(
'method' => 'GET',
'header' => "Host: ".$host."\r\n" .
"Cookie: foo=bar\r\n"
)
));
$data = file_get_contents($url, false, $context);
return $data;
}

Wenn ich dann den Aufruf mache, funktioniert das Ganz tadellos:

$ip = Get_IP("www.test.de");
$url = 'http://'.$ip.'/essen-trinken/';
$host = "www.test.de";

Ist jetzt nur ein Beispiel mit "test.de"! Ich greife nicht wirklich Stiftung Warentest ab. :)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!