PDF2SWF:php exec()仅适用于终端

时间:2015-12-11 17:52:35

标签: php pdf2swf

这是我的代码:

$pdf = '/Users/macbookpro/Desktop/q.pdf';
$swf = '/Users/macbookpro/Desktop/q.swf';

$command2 = 'pdf2swf -o '.$swf.' -T -z -t -f '.$pdf.' -s flashversion=9';
exec($command2,$out,$status);
var_dump($output);

输出为NULL且不生成SWF。但是,如果我输出命令并将其复制到终端,它就可以工作。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

exec以运行脚本的用户身份运行。 Apache用户可能没有PATH变量告诉它在哪里查找程序,因此不是

 $command2 = 'pdf2swf -o '.$swf.' -T -z -t -f '.$pdf.' -s flashversion=9';

尝试添加pdf2swf的位置,例如:

 $command2 = '/bin/pdf2swf -o '.$swf.' -T -z -t -f '.$pdf.' -s flashversion=9';

确保apache用户有权访问可执行文件,并获得执行权限。

 chmod a+x /bin/pdf2swf

当然,将/bin/替换为pdf2swf真正存在于此答案中的所有示例代码。