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

标签 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 运行..

作为 root

单独使用命令行在 putty 中运行良好

脚本在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

更新二

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

最佳答案

您可以使用 chown 更改/usr/bin/doc2pdf 的所有者命令,或更改 www-data 用户的权限,允许在不输入密码的情况下以 root 身份运行命令。为此,您必须编辑 /etc/sudoers 文件。不过,最好不要直接编辑它。 Linux 中有一个用于此的实用程序:visudo .

$sudo visudo

将其添加到文件末尾

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

保存文件,大功告成。不要忘记更改您的 php 代码的这一行(在开头添加 sudo):

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

关于php - doc2pdf - 无法连接或启动自己的监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32402851/

相关文章:

php - Laravel 5.0 phpunit 模型

php - 检查查询中的值是否不在另一个表中

linux - 如何在不修改其他列且不创建临时文件的情况下对 bash (linux) 中的特定列进行排序?

linux - 如何在 Debian 测试中安装 mono 3?

php - 在 Debian 9 中安装 php5.6

导入文件中的类型冲突

php - 测试空字节漏洞

php - Zend Framework 特定模块中操作的 URL

linux - CentOS 上使用 DNS 的所有网络事件延迟

python脚本输出保存在不同的文件夹中