2009-03-16 12 views
5

私はヘッドレスサーバーでFirefoxを実行して、Webサイトのスクリーンショットを撮ろうとしています。私は端末からPHPとXvfbの使用

"DISPLAY =:12 firefox -saveimage http://www.google.com/"を使ってこれを行うことができます。

問題は、システムを実行しようとするときです(「DISPLAY =:12 firefox -saveimage http://www.google.com」)。動作しません。私はそれが普通のシェル環境では実行されていないと感じています。私はより良い判断に逆らって、apacheユーザに実際のシェルを与えました。私がApacheにsuしてコマンドを実行すると、すべてが正常に動作し、期待通りに動作しますが、システムコールからはうまくいきません。どんな洞察も大歓迎です。

答えて

0

ほとんどの場合、httpdの環境では満たされていないシェルユーザーとして設定した環境変数に依存している可能性があります。しかし、環境とのヒロイックを行う前に、あなたの仕事からstderrをキャプチャすることをお勧めします(たとえば、2>/tmp/imgcaperrlogの最後に追加して)、それが苦情を出しているかどうかを確認してください。

+0

私はそのショットを与え、それは動作しませんでした= \ – William

+0

さて、2番目のバージョンアップ。 – chaos

+0

私はそれを疲れ、それは実行されていない。それで、私はPHPがシステムコールを実行する環境が多少異なると思うかもしれません。 – William

3

解決策が見つかりました。

私はそれを呼び出すシェルスクリプトを作成するだけでした。しばらくそれを再生した後、私はスクリプトの上部にexport HOME="/var/www/"を追加した後に動作します。

私はこれが他の人に役立つことを願っています。

+0

+1で解決策をフォローアップする –

関連する問題