phpcentoswkhtmltopdfxauth

WkHTMLtoPDF 0.12.2.1 PHP exec xvfb-run: Error: xauth command not found


I want to generate a PDF from a URL, so I execute the command by WkHTMLtoPDF as below:

/usr/bin/xvfb-run --server-args="-screen 0, 1920x1080x24" /usr/local/bin/wkhtmltopdf http://www.google.com /tmp/google.pdf  2>&1

The above command works fine on Terminal, But when I invoke the command inside PHP failed! And show me an error message as below:

array(2) { 
    [0]=> string(27) "which: no xauth in ((null))"
    [1]=> string(40) "xvfb-run: error: xauth command not found"
}

I don't know how to resolve this issue! Anyone can help me on this, my OS environment as below:

My PHP code as below:

<php
    $var = array();
    $res = 0;

    $cmd = '/usr/bin/xvfb-run --server-args="-screen 0, 1920x1080x24" /usr/local/bin/wkhtmltopdf http://www.google.com /tmp/google.pdf  2>&1';

    exec($cmd, $var, $res);

    echo $cmd.'&lt;br /&gt;';
    var_dump ($var);
?>

Solution

  • For CentOS PHP environment the WkHTMLtoPDF tool not need xvfb-run to exec the command, But for Ubuntu PHP environment need xvfb-run to exec the command! I had revised my code as below and the issues was resolved:

    $osName = 'lsb_release -d 2>&1';
    exec('lsb_release -d', $osName);
    $isCentOS   = strrpos(strtolower($osName[0]), 'centos'); 
    
    $cmd = '/usr/local/bin/wkhtmltopdf http://www.google.com /tmp/google.pdf  2>&1';
    if ($isCentOS === false) {
         $cmd = '/usr/bin/xvfb-run --server-args="-screen 0, 1920x1080x24" /usr/local/bin/wkhtmltopdf http://www.google.com /tmp/google.pdf  2>&1';
    } 
    

    The issues is currently resolved and Thanks @joaoBeno saved me for fixed this issue~~