[Red Hat 9] Failed to open stream

Pagina: 1
Acties:

  • Eijkb
  • Registratie: Februari 2003
  • Laatst online: 10-02 10:04
Ik gebruik een Red Hat 9 webserver (Apache/2.0.40) met php versie 4.3.4. Er zit een redelijk stricte firewall op dmv IP Tables. Binnen de configuratie staan url_open_wrappers op enabled en streams zijn toegestaan getuige de regel in phpino():

code:
1
2
Registered PHP Streams  php, http, ftp, https, ftps, 
compress.bzip2, compress.zlib


Echter, bij een fopen() call naar een externe url krijg ik na een tijdje wachten de volgende resultaten:

code:
1
2
Warning: fopen(http://145.58.30.7/rss.xml): failed to open stream: 
HTTP request failed! TËÿ¿è\ THΧ@xŒùxŒùlËÿ¿pËÿ¿Ðÿ¿ŒÐÿ¿8Íÿ¿¨Ðÿ¿


Het PHP bestand wat ik uitvoer:

code:
1
2
3
$newsfile = fopen("http://145.58.30.7/rss.xml","r");
$inhoud = fread($newsfile,8192);
echo $inhoud.'<br>';


Het maakt geen verschil ofdat ik 145.58.30.7 aanroep of portal.omroep.nl. Ik post dit in Non-Windows Operating Systems omdat het geen PHP syntax vraag is maar een server gerelateerde vraag. Wat mis ik? Met of zonder firewall: hetzelfde resultaat. Het is een redelijk drukke server, dus ik begin haast te denken aan een limiet in streams of file open pointers. Iemand die meer weet?

Het rare is dat als ik hetvolgende uitvoer, het wel werkt (als root). Maar een rechtenkwestie lijkt het mij toch niet te zijn.

code:
1
2
3
4
5
6
#! /usr/bin/php
<?
$newsfile = fopen("http://portal.omroep.nl/rss.xml","r");
$inhoud = fread($newsfile,8192);
echo $inhoud;
?>

[ Voor 25% gewijzigd door Eijkb op 02-03-2004 16:37 ]

.


Verwijderd

1) Staat er nog wat in je error.log?
2) Start apache eens op in single-tread mode, hang strace eraan, doe een request en geef ons de (relevante) output..

  • Eijkb
  • Registratie: Februari 2003
  • Laatst online: 10-02 10:04
Verwijderd schreef op 02 maart 2004 @ 17:04:
1) Staat er nog wat in je error.log?
2) Start apache eens op in single-tread mode, hang strace eraan, doe een request en geef ons de (relevante) output..
De errorlog zegt niet zo veel. Althans geen foutmeldingen of andersoortige aanwijzing. Apache herstarten is lastig gezien ik niet het enige domein ben op deze server (produktie)

.


Verwijderd

Debuggen zonder het apache proces te herstarten word ook lastig (waar zijn je service windows?) :+ Als er geen interesante info in de logs staat, zou je wellicht nog kunnen achterhalen welke apache thread jouw request afhandeld, en daar strace aan kunnen hangen. Zonder meer nuttige info (strace output bijvoorbeeld) kunnen we hier weinig zinnigs over zeggen...

  • Eijkb
  • Registratie: Februari 2003
  • Laatst online: 10-02 10:04
Service windows? Tja, je snapt dat ik voor dit soort 'spielerij' geen downtime ga inlasten. Ik ga eens verder spelen met threads en strace. Als ik iets vind dan zal ik dat zeker posten.

Ik denk echter dat het tegen een limiet binnen Apache aanloopt. Niemand een idee waar ik moet beginnen te zoeken naar limieten mbt fopen / threads?

.


  • Eijkb
  • Registratie: Februari 2003
  • Laatst online: 10-02 10:04
Het bleek een standaard setting te zijn van RedHat: __FD_SETSIZE 1024. Door deze omhoog te brengen en Apache en PHP te recompilen is de zaak opgelost.

.

Pagina: 1