Screenshot-Skript

15/10/2008 - 17:03 von Michael Schräber | Report spam
Hallo,
ich entwickle momentan unter einem Debian-Server eine API
(Übergabeparameter ist eine beliebige URL), die es ermöglichen soll,
folgendes zu tun:

Ein PHP-Skript ruft per system() ein Bash-Skript auf, das wie folgt
arbeitet:
* Xvfb (virtueller X-Server) wird gestartet
* Firefox wird gestartet
* davon wird ein Screenshot gemacht und in ein JPG-Bild umgespeichert

Dann wird das Screenshot durch das PHP-Skript weiterverarbeitet.
Problem ist nun, dass ich, wenn ich das Skript per URL aufrufe, nur
einen Screenshot des leeren Xvfb bekomme. Das Firefox-Fenster scheint
nicht geöffnet.

Wenn ich die Ausgaben von Firefox nun in Textdateien umleite, sind diese
leer.


Wenn ich das PHP-Skript direkt in der Konsole ausführe, funktioniert
alles wie gewünscht.

Hat jemand eine Idee, woran das liegen könnte?

Vielen Dank,
Viele Grüße

Michael
 

Lesen sie die antworten

#1 Hauke Laging
15/10/2008 - 17:27 | Warnen spam
Michael Schràber schrieb am Mittwoch 15 Oktober 2008 17:03:

Hallo,
ich entwickle momentan unter einem Debian-Server eine API
(Übergabeparameter ist eine beliebige URL), die es ermöglichen
soll, folgendes zu tun:

Ein PHP-Skript ruft per system() ein Bash-Skript auf, das wie folgt
arbeitet:
* Xvfb (virtueller X-Server) wird gestartet
* Firefox wird gestartet
* davon wird ein Screenshot gemacht und in ein JPG-Bild
umgespeichert

Dann wird das Screenshot durch das PHP-Skript weiterverarbeitet.
Problem ist nun, dass ich, wenn ich das Skript per URL aufrufe, nur
einen Screenshot des leeren Xvfb bekomme. Das Firefox-Fenster
scheint nicht geöffnet.

Wenn ich die Ausgaben von Firefox nun in Textdateien umleite, sind
diese leer.


Wenn ich das PHP-Skript direkt in der Konsole ausführe,
funktioniert alles wie gewünscht.

Hat jemand eine Idee, woran das liegen könnte?



Zwei.

1) Vielleicht liegt es daran, dass unterschiedliche User benutzt
werden - wenn Du die Shell nicht als der User des Webservers
aufrufst.

2) Der Webserver hat kein controlling tty. Kann natürlich sein, dass
das Firefox so gar nicht passt. Ich weiß allerdings nicht, wie man
das àndern (also dem PHP-Script ein tty verpassen) kann.

Man kann aber umgekehrt auf der Konsole ein Script starten, dem man
das tty weggenommen hat. Das müsste mit nohup gehen.


CU

Hauke
http://www.hauke-laging.de/ideen/
Wie können 59.054.087 Leute nur so dumm sein?

Ähnliche fragen