doc2pdf - 无法连接或启动自己的侦听器

时间:2015-09-04 16:39:17

标签: php linux debian

命令

$file = '/var/www/test.docx';
move_uploaded_file($uploaded_file, $file);
echo 'is file: '.is_file($file)."\n";

exec('/usr/bin/doc2pdf -o '.$file.'.new '.$file.' 2>&1', $out);
print_r($out);

输出

is file: 1
Array
(
    [0] => Error: Unable to connect or start own listener. Aborting.
)

这是上传脚本的一部分,在Apache ..

下以www-data运行

单独的命令行可以在putty中正常工作root

该脚本在www-data下运行,但现在却没有? : - /

更新我

apt-get install sudo
sudo visudo # added "www-data ALL = NOPASSWD: /usr/bin/doc2pdf"

代码:

exec('sudo /usr/bin/doc2pdf -o '.$file.'.new '.$file.' 2>&1', $out);
print_r($out);

错误:

sudo: unable to resolve host dyntest-amd-3700-2gb

更新II

echo "127.0.1.1 $(hostname)" >> /etc/hosts
reboot

2 个答案:

答案 0 :(得分:5)

您可以使用chown命令更改/ usr / bin / doc2pdf的所有者,或更改www-data用户的权限,允许以root身份运行命令而无需输入密码。为此,您必须编辑 / etc / sudoers 文件。但最好不要直接编辑它。在linux中使用了一个util:visudo

$ sudo visudo

将此添加到文件的最后

www-data ALL = NOPASSWD:/ usr / bin / doc2pdf

保存文件,您已完成。别忘了改变你的php代码行(在开头添加sudo):

exec('sudo /usr/bin/doc2pdf -o '.$file.'.new '.$file.' 2>&1', $out);

答案 1 :(得分:0)

以root身份连接到ssh

sudo visudo

添加

www-data ALL =(ALL)NOPASSWD:/ usr / bin / doc2pdf

并保存:wq