这是我的代码:
$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。但是,如果我输出命令并将其复制到终端,它就可以工作。我该如何解决这个问题?
答案 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真正存在于此答案中的所有示例代码。