doc2pdf - nelze připojit nebo spustit vlastní posluchače

hlasů
6

příkaz

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

výstup

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

Jedná se o součást upload skript a běží jak www-datapod Apache ..

Příkazový řádek sám funguje od tmelem as root

Skript pracuje pod www-data, ale teď to tak není? : - /

aktualizace I

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

kód:

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

chyba:

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

aktualizace II

echo 127.0.1.1 $(hostname) >> /etc/hosts
reboot
Položena 04/09/2015 v 15:39
uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

Připojení k ssh jako root

sudo visudo

přidat

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

a uložit: WQ

Odpovězeno 04/09/2015 v 18:39
zdroj uživatelem

hlasů
5

Můžete buď změnit vlastníka / usr / bin / doc2pdf s chown příkaz, nebo změnit privilegia uživatele www-dat umožňující spouštět příkazy jako root bez zadání hesla. Chcete-li to, budete muset upravit soubor / etc / sudoers souboru. Lepší, aby jej upravovat derectly, ačkoli. Je tu util v Linuxu používané pro toto: visudo .

$ Sudo visudo

přidat na samém konci souboru

www-údaje ALL = NOPASSWD: / usr / bin / doc2pdf

Uložení souboru a máte hotovo. Nezapomeňte změnit tento řádek PHP kódu stejně (přidat sudo na začátku):

exec('sudo /usr/bin/doc2pdf -o '.$file.'.new '.$file.' 2>&1', $out);
Odpovězeno 07/09/2015 v 10:50
zdroj uživatelem

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