2009-03-16 20 views
5

Sto cercando di eseguire firefox su un server senza testa per scattare schermate di un sito web. Posso eseguire questa operazione dal terminale utilizzandoUtilizzo di PHP e Xvfb

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

Il problema si verifica quando provo a eseguire il sistema ("DISPLAY =: 12 firefox -saveimage http://www.google.com"); non funziona Ho la sensazione che non sia in esecuzione in un normale ambiente di shell. Sono andato contro il mio migliore giudizio e ho dato l'utente apache un vero guscio. Se faccio su apache ed eseguo il comando, tutto va bene e funziona come previsto, ma ancora una volta non funziona con una chiamata di sistema. Qualsiasi intuizione è molto gradita.

risposta

0

Molto probabilmente c'è una dipendenza dalle variabili di ambiente che hai impostato come utente della shell che non è soddisfatta dall'ambiente di httpd. Prima di fare qualsiasi eroismo con l'ambiente, però, ti consiglio di catturare stderr dal tuo lavoro (aggiungendo 2>/tmp/imgcaperrlog alla fine di esso, per vedere se sta facendo dei reclami.

+0

Ho dato uno scatto e non ha funzionato = \ – William

+0

Ok, seconda versione. – chaos

+0

Mi sono stancato e non è nemmeno in esecuzione. Questo è quello che mi ha fatto pensare che forse l'ambiente in cui php esegue le chiamate di sistema è un po 'diverso. – William

3

Ho trovato la soluzione.

Avevo solo bisogno di creare uno script di shell che lo chiamasse per me. Dopo aver giocato con esso per un po 'ho funzionato dopo aver aggiunto export HOME="/var/www/" nella parte superiore dello script.

Spero che questo aiuti qualcun altro.

+0

+1 per seguire la soluzione –