0

这是我的代码:

$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。但是,如果我输出命令并将其复制到终端,它就可以工作。我该如何解决这个问题?

4

1 回答 1

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 真正存在的地方。

于 2015-12-11T18:08:00.550 回答