从www-data
运行程序时出现此错误。
错误
sudo:没有tty存在且没有指定askpass程序
但我已将以下内容添加到sudo visudo
www-data ALL = NOPASSWD: /var/bin/poppler-0.65.0/build/utils/pdfimages
路径/var/bin/poppler-0.65.0/build/utils/pdfimages
是正确的..我已经从终端进行了测试。
命令
sudo /var/bin/poppler-0.65.0/build/utils/pdfimages -list 数据/ scan_voucher / 17.pdf
答案 0 :(得分:1)
正如您所说的,已经正确设置了sudo visudo
,我将首先看一下Tarun Lalwani
链接,特别是有关禁用sudoers中要求tty的部分:
Defaults !requiretty
尝试执行相同的命令,但带有标记 -S ( sudo -S yourcommand )
-S(stdin)选项使sudo从以下位置读取密码: 标准输入而不是终端设备。
如果它对您不起作用,您可以尝试使用trick
(似乎是这样)(来自here):
echo '' | sudo -S your_command
这将向第一个提示输入密码的用户发送一个空密码。
您如何从PHP执行此操作?尝试:
@exec("sudo /var/bin/poppler-0.65.0/build/utils/pdfimages -list data/scan_voucher/17.pdf");
希望有帮助!