PDF2SWF:php exec() 仅适用于终端
PDF2SWF: php exec() only works in terminal
这是我的代码:
$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。但是,如果我输出命令并将其复制到终端,它就可以工作。我该如何解决?
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 真正存在的地方。
这是我的代码:
$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。但是,如果我输出命令并将其复制到终端,它就可以工作。我该如何解决?
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 真正存在的地方。