2011-01-05 15 views
8

Este problema parece haber sido discutido en el pasado en todas partes en google y aquí, pero todavía tengo que encontrar una solución.PHP5 giving failed to open stream: error de solicitud HTTP al usar fopen

Un fopen muy simple me da una advertencia

PHP: fopen (http://www.google.ca): failed to open stream: HTTP solicitud con error"

La URL estoy retracto tiene ninguna importancia. porque incluso cuando obtengo http://www.google.com no funciona. La misma secuencia de comandos funciona en un servidor diferente. El que falla es Ubuntu 10.04 y PHP 5.3.2. Esto no es un problema en mi script, es algo diferente en mi servidor o podría ser un error en PHP.

He intentado usar un user_agent en php.ini pero no tuve éxito. My allow_url_fopen está activado.

Si tiene alguna idea, ¡siéntase libre!

+0

¿Se puede hacer un 'wget http: // www.google.ca' desde la línea de comandos? ¿'Fopen()' no da más información de error? –

+0

¿Puedes hacer fopen ('173.194.43.104')? (esa es la IP de google.ca) ¿tal vez DSN no es accesible por PHP en ese servidor? –

+0

@Pekka sí, no puedo buscar ningún problema de esta manera – mickey

Respuesta

9

Parece que su configuración no está permitido el uso de las funciones de archivo, que es común estos días debido a problemas de seguridad. Si tiene las bibliotecas cURL disponibles, le recomiendo que las pruebe.

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

ver comentario anterior – mickey

+0

Crear un archivo PHP de prueba con la línea 'phpinfo();'. Busque "curl" y vea si está habilitado. –

+0

Ok, veo que editaste tu publicación, esa versión está funcionando, la probaré en mi script. – mickey

1

No estoy del todo seguro de si este es el problema o no, pero sé que en el pasado he tenido problemas con la apertura de URLs con fopen, a menudo debido a php. ini's allow_url_fopen u otras configuraciones de seguridad desconocidas

Puede que quiera probar cURL en PHP, que a menudo me funciona, encontrará un ejemplo muy fácil al buscar en Google.

+0

He intentado con php-curl y obtengo exactamente el mismo error. – mickey

+0

¿El mismo? Extraño. ¿Qué da curl_error()? http://uk.php.net/manual/en/function.curl-error.php – Adam

0

Compruebe su phpinfo salida - es http presente en Registered PHP Streams?

+0

https, ftps, compress.zlib, compress.bzip2, php, archivo, glob, datos, http, ftp, phar, zip – mickey

Cuestiones relacionadas