Estoy trabajando con una secuencia de comandos (que no creé originalmente) que genera un archivo pdf desde una página HTML. El problema es que ahora lleva mucho tiempo, como 1-2 minutos, procesar. Supuestamente esto funcionaba bien originalmente, pero se ha ralentizado en las últimas semanas.PHP file_get_contents muy lento al usar la url completa
El script llama al file_get_contents
en un script php, que luego genera el resultado en un archivo HTML en el servidor y ejecuta la aplicación del generador de archivos PDF en ese archivo.
Parece que he reducido el problema a la llamada file_get_contents
en una url completa, en lugar de una ruta local.
Cuando uso
$content = file_get_contents('test.txt');
se procesa de forma casi instantánea. Sin embargo, si utilizo la url completa
$content = file_get_contents('http://example.com/test.txt');
tarda de 30-90 segundos en procesarse.
No se limita a nuestro servidor, es lento cuando se accede a una url externa, como http://www.google.com. Creo que el script llama a la url completa porque hay variables de cadena de consulta que son necesarias y que no funcionan si llama al archivo localmente.
También probé fopen
, readfile
, y curl
, y todos fueron similarmente lentos. ¿Alguna idea sobre dónde buscar para solucionar esto?
Cuando intento wget desde la línea de comandos, eso también es muy lento. Está colgando en el paso de resolución ... Algún tipo de problema de DNS en el servidor? – ecurbh
Podría ser. Intente usar 'host' o 'nslookup' (lo que esté disponible) y trate de resolver varios nombres de host diferentes del sistema. –