

お世話になります。  
当方、最近Linuxを触り始めましたサーバ初心者でございます。

WEBページのキャプチャ（URLを指定し、レンダリングし、画像を保存する）を試行錯誤していて  
CentOS6に「CutyCapt」とその関連をインストールしてSSHで実行するトコロまでできました。

コマンドは以下のようなもので成功します

[code]

    xvfb-run --auto-servernum --server-num=1 CutyCapt --url=https://www.google.co.jp/ --out=/var/www/html/capture/google.jpg
    
[/code]

このコマンドをPHPから実行したいと考えています。  
（PHP歴はそこそこあるのですが、今まで外部にコマンドを叩くなどの経験がなくて、当てずっぽうに試しているのですが...）

[code]

    $res = exec(escapeshellcmd('xvfb-run --auto-servernum --server-num=1 CutyCapt --url=https://www.google.co.jp/ --out=/var/www/html/capture/google.jpg'));
    
[/code]

と、そのままぶち込んでみますと、$res には

[code]

    QXcbConnection: Could not connect to display :1
    
[/code]

が入り、画像も生成されません。

なんとなく、仮想ディスプレイとの接続周りでコケているのは理解できるのですが  
SSHで成功するコマンドをPHPで実行したときに失敗する理由がピンと来ず、  
次に何を試してみるかが、分からず暗礁に乗り上げております。

もしかしたら、初歩的な勘違いやミスかもしれませんが  
アドバイスのほど、よろしくお願いいたします


CC BY-SA 3.0
2017-04-25T04:22:19.433
34257
2021-04-15T06:53:20.877
8013
question
php linux centos
xvfb CutyCapt を PHP から実行すると "QXcbConnection: Could not connect to display :1"


未検証ではありますが、xvfb用の仮想ディスプレイは用意していますか？

[code]

    Xvfb :90 -ac -screen 0 1024x768x24 > /dev/null 2>&1  &
    
[/code]

実行

[code]

    DISPLAY=:90 CutyCapt --url=https://www.google.co.jp/ --out=/var/www/html/capture/google.jpg
    
[/code]

Seleniumになり恐縮ですが、私の記事が参考になるかと思います。

<http://qiita.com/m3m0r7/items/355e8bbe77acbbd359d2#%E3%81%93%E3%81%93%E3%81%8B%E3%82%89%E3%81%8C%E6%A5%BD%E3%81%97%E3%81%84selenium%E3%81%A7%E3%82%B9%E3%82%AF%E3%82%B7%E3%83%A7%E3%82%92%E5%8F%96%E3%82%8B>


CC BY-SA 3.0
2017-09-07T18:09:14.233
37786
2017-09-07T18:09:14.233
18542
34257
answer