※ ChatGPTを利用し、要約された質問です(原文:仮想フレームバッファXvfb上でfirefoxを実行したいが、 Gtk-WARNING **: cannot open display: となる)
仮想フレームバッファXvfb上でfirefoxを実行したいが、Gtk-WARNING **: cannot open display: となる
このQ&Aのポイント
仮想フレームバッファXvfb上でfirefoxを実行すると、Gtk-WARNING **: cannot open display: というエラーが発生してしまいます。
ssh接続したターミナル上でimportコマンドで画面キャプチャを取得しようとすると、指定したページが表示されず、エラーが発生します。
CLI版のPHPを直接動かす方法でも同じエラーが発生してしまいます。お力を貸していただけませんでしょうか?
仮想フレームバッファXvfb上でfirefoxを実行したいが、 Gtk-WARNING **: cannot open display: となる
.shから
php test.php
とし、以下のスクリプトをroot権限としてcrontab経由で実行しています。
<?php
$CapAddr = 'http://google.com';
system('firefox -display :1 -remote "openurl(' . $CapAddr . '), new-window"');
?>
ところが、ssh接続したターミナル上でimportコマンドで画面のキャプチャを取得して開いてみると
指定したページが表示されていません。吐いているエラーを見ると、
(firefox-bin:6340): Gtk-WARNING **: cannot open display:
となり、実行に失敗しています。
ssh接続した所で直に打ち込めば何ら問題なく言うことを聞いてくれるのですが、
shell script上で
php /home/htdocs/WebPageCapture.php
とするとまたしても同じエラーを吐きます。
次はやり方を変えて、呼び出さずに直接CLI版のPHPを動かす方法を試しました。
#!/usr/bin/php
<?php
で始まる、同一のコードです。
すると再び、同じ
(firefox-bin:7802): Gtk-WARNING **: cannot open display:
のエラーが発生してます。
terminalで同じ事をすると上手く行くだけに困っています。
お力を貸していただけませんでしょうか、よろしくお願いいたします
接続元:Mac OSX Tiger
接続先サーバ環境:CentOS4.2
# ps ax | grep Xvfb
/usr/X11R6/bin/Xvfb :1 -screen 0 1024x2048x24
お礼
なるほど、さすがです。出来ました。 phpからは環境変数をなぜか取ってきてくれないようですね・・・。 export DISPLAY=:1.0 とした後にapacheと一緒に動き出しているphpを再起動していなかったので /etc/init.d/httpd restart とするともしかすると環境変数を読み取ってくれるのかもしれませんが。 ひとまず、うまくいきました。ありがとうございます。