2011-01-05 13 views
8

Questo problema sembra essere stato discusso in passato ovunque su google e qui, ma non ho ancora trovato una soluzione.PHP5 non riuscita ad aprire stream: errore HTTP request failed quando si utilizza fopen

Una molto semplice fopen mi dà una

PHP Warning: fopen (http://www.google.ca): non riuscito ad aprire flusso: HTTP richiesta non riuscita"

L'URL sto recupero non hanno alcuna importanza. perché anche quando prendo lo http://www.google.com non funziona, lo stesso identico script funziona su un server diverso, l'unico a mancare è Ubuntu 10.04 e PHP 5.3.2 Questo non è un problema nel mio script, è qualcosa di diverso nel mio server o potrebbe essere un bug in PHP

Ho provato a utilizzare un utente_agent in php.ini ma non ha avuto successo. Il mio permesso_url_fopen è impostato su On.

Se avete qualche idea, sentitevi liberi!

+0

Si può fare un 'wget http: // www.google.ca' dalla riga di comando? 'Fopen()' non fornisce ulteriori informazioni sull'errore? –

+0

puoi fare fopen ('173.194.43.104')? (questo è google.ca's ip) forse DSN non è accessibile da PHP su quel server? –

+0

@Pekka sì, non posso recuperare nessun problema in questo modo – mickey

risposta

9

Sembra che la configurazione non è permesso di utilizzare le funzioni di file, che è comune in questi giorni a causa di problemi di sicurezza. Se hai a disposizione le librerie cURL, ti consiglio di provarle.

PHP: cURL

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://www.google.ca/"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$file = curl_exec($ch); 
curl_close($ch); 

echo $file; 
+0

vedi commento sopra – mickey

+0

Creare un file PHP di prova con il 'phpinfo();' line it. Cerca "arricciatura" e vedi se è abilitato. –

+0

Ok, vedo che hai modificato il tuo post, quella versione funziona, lo proverò nella mia sceneggiatura. – mickey

1

io non sono affatto sicuro sul fatto che questo è il problema o no, ma so che in passato ho avuto problemi con l'apertura delle URL con fopen, spesso a causa di php. ini's allow_url_fopen o altre impostazioni di sicurezza sconosciute

Si consiglia di provare cURL in PHP, che spesso funziona per me, troverete un esempio davvero facilmente su google che.

+0

Ho provato php-curl e ottengo lo stesso identico errore. – mickey

+0

Lo stesso identico? Strano. Cosa fornisce curl_error()? http://uk.php.net/manual/en/function.curl-error.php – Adam

0

Verificare l'uscita phpinfo - è http presente sotto Registered PHP Streams?

+0

https, ftps, compress.zlib, compress.bzip2, php, file, glob, dati, http, ftp, phar, zip – mickey

Problemi correlati