5

ヘッドレス サーバーで Firefox を実行して、Web サイトのスクリーン ショットを取得しようとしています。を使用して端末からこれをうまく行うことができます

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

問題は、 system("DISPLAY=:12 firefox -saveimage http://www.google.com ");を実行しようとしたときです。動作しません。通常のシェル環境では動かない気がします。私は自分の判断に反して、Apache ユーザーに実際のシェルを提供しました。Apache に su してコマンドを実行すると、すべて正常に動作し、期待どおりに動作しますが、システム コールからは動作しません。どんな洞察も大歓迎です。

4

2 に答える 2

3

私は解決策を見つけました。

それを呼び出すシェルスクリプトを作成する必要がありました。しばらく遊んだ後export HOME="/var/www/"、スクリプトの先頭に追加して動作させました。

これが他の誰かに役立つことを願っています。

于 2009-03-16T21:10:02.780 に答える
0

ほとんどの場合、シェル ユーザーとして設定した環境変数には、httpd の環境によって満たされていない依存関係があります。ただし、環境で英雄的なことを行う前に、ジョブから stderr をキャプチャし (2>/tmp/imgcaperrlogたとえば、最後に追加することにより)、問題がないかどうかを確認することをお勧めします。

于 2009-03-16T18:36:16.567 に答える