2009-03-16 9 views
5

Estoy tratando de ejecutar Firefox en un servidor sin cabeza para tomar capturas de pantalla de un sitio web. Puedo hacerlo bien desde la terminal usandoUso de PHP y Xvfb

"DISPLAY =: 12 firefox -saveimage http://www.google.com/".

El problema es cuando intento hacer el sistema ("DISPLAY =: 12 firefox -saveimage http://www.google.com"); no funciona Tengo la sensación de que no se está ejecutando en un entorno de shell normal. Fui en contra de mi mejor juicio y le di al usuario apache un shell real. Si hago un apache y ejecuto el comando todo está bien y funciona como se esperaba, pero nuevamente no funciona desde una llamada al sistema. Cualquier idea es muy bienvenida.

Respuesta

0

Es muy probable que exista alguna dependencia de las variables de entorno que ha configurado como usuario de shell que no cumple el entorno del httpd. Sin embargo, antes de hacer algo heroico con el medio ambiente, recomendaría capturar stderr de su trabajo (agregando 2>/tmp/imgcaperrlog al final, por ejemplo) y ver si está presentando alguna queja.

+0

He dado una oportunidad y no funcionó = \ – William

+0

Bien, segunda versión arriba. – chaos

+0

Me cansé y ni siquiera se está ejecutando. Eso es lo que me hizo pensar que tal vez el entorno en el que php ejecuta las llamadas al sistema es de alguna manera diferente. – William

3

Encontré la solución.

Solo necesitaba crear un script de shell que lo llamara por mí. Después de jugar con él por un tiempo lo conseguí funcionando después de agregar export HOME="/var/www/" en la parte superior del script.

Espero que esto ayude a alguien más.

+0

+1 para seguir con la solución –