使用PHP exec()
时出现问题。我无法弄清楚这个问题,我尝试使用以下代码:
exec("pdfcrop --margins '-6 -2 -3 -2' '/home/username/pdf/Figure 1 Timeline of Virtual Sim Use/page.01.pdf' '/home/username/pdf/out/output.pdf'", $output, $error);
每当我在exec()
中使用此命令时,它返回状态代码2,但如果我将此命令用于我的终端,那么它运行良好。所以请提出解决这个问题的建议。
答案 0 :(得分:4)
php exec函数在apache用户(www-data)用户下运行该进程最有可能该用户无权访问: 的/ home /用户名/ PDF /图
您可以通过尝试将此路径更改为/ tmp / pdf file.pdf名称来轻松测试。
答案 1 :(得分:0)
pdfcrop
是一个Perl程序。打开它进行阅读,您会发现它在当前目录中创建了tmp
个文件
我做了以下更改后,它在PHP调用中工作:
$ tmp =“/ tmp / tmp -...”
pdftex - 添加参数-output-directory = / tmp
答案 2 :(得分:0)
对于Linux Debian 9.5,我从Php exec()
函数返回了代码2,因为/etc/passwd
文件中用户www-data的控制台错误:
我不得不换行:
www-data:x:33:33:www-data:/usr/sbin/nologin
收件人:
www-data:x:33:33:www-data:/var/www:/bin/bash
现在错误消失了,命令按预期执行了!