【发布时间】:2015-05-30 05:04:10
【问题描述】:
我想从一个 URL 生成一个 PDF,所以我通过 WkHTMLtoPDF 执行命令如下:
/usr/bin/xvfb-run --server-args="-screen 0, 1920x1080x24" /usr/local/bin/wkhtmltopdf http://www.google.com /tmp/google.pdf 2>&1
上面的命令在终端上运行良好,但是当我在 PHP 中调用命令时失败了!并显示如下错误消息:
array(2) {
[0]=> string(27) "which: no xauth in ((null))"
[1]=> string(40) "xvfb-run: error: xauth command not found"
}
我不知道如何解决这个问题!任何人都可以帮助我,我的操作系统环境如下:
- 操作系统:CentOS 6.6 版
- wkhtmltopdf 版本:0.12.2.1
- nginx版本:nginx/1.6.3
我的PHP代码如下:
<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.'<br />';
var_dump ($var);
?>
【问题讨论】:
-
检查是否禁用了安全模式?
-
你的意思是safe_mode = Off?我在 php.ini 中检查了 safe_mode 是否关闭
-
你试图只运行
/usr/local/bin/wkhtmltopdf http://www.google.com /tmp/google.pdf? -
@joaoBeno 是的,我尝试在 PHP 中运行没有 xvfb-run 的命令,但失败了!但在命令行上成功。
-
@joaoBeno 我认为这是权限问题?如何授予nobody用户运行wkhtmltopdf的权限?
标签: php centos wkhtmltopdf xauth