doc2pdf - incapaz de se conectar ou iniciar próprio ouvinte

votos
6

comando

$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);

saída

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

Esta é uma parte de um script de upload e está sendo executado como www-datasob Apache ..

A linha de comando só funciona bem a partir massa como root

O roteiro tem trabalhado sob www-data, mas agora isso não acontece? : - /

atualização I

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

código:

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

erro:

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

atualização II

echo 127.0.1.1 $(hostname) >> /etc/hosts
reboot
Publicado 04/09/2015 em 15:39
usuário
Em outras línguas...                            


2 respostas

votos
0

Ligue para o ssh como root

sudo visudo

adicionar

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

e salvar: wq

Respondeu 04/09/2015 em 18:39
fonte usuário

votos
5

Você pode alterar o proprietário de / usr / bin / doc2pdf com o chown de comando, ou alterar os privilégios de usuário www-dados que permitam executar comandos como root sem digitar senha. Para fazer isso, você terá que editar / etc / sudoers arquivo. Melhor não editá-lo derectly, no entanto. Há uma util em Linux usado para isso: visudo .

$ Sudo visudo

adicione até o fim de arquivo

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

Salve o arquivo e está feito. Não se esqueça de alterar esta linha de seu código PHP, bem como (adicione sudo no início):

exec('sudo /usr/bin/doc2pdf -o '.$file.'.new '.$file.' 2>&1', $out);
Respondeu 07/09/2015 em 10:50
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more