O Apach pode ser configurado para proibir a chamada de algum comando / libs ...
Mas talvez as variáveis de ambiente (por exemplo, $ PATH ...) não sejam as mesmas para seu usuário e usuário do Apach (www-data) ou algo parecido.
Veja um exemplo do que você pode fazer para pesquisar o problema:
Tente chamar set
ou setenv
para obter a lista das variáveis.
Crie um script básico callset.sh
:
#!/bin/bash
set
(não esqueça de chmod +x callset.sh
para dar permissão de execução):
Em seguida, chame este script bash
do PHP:
$output = shell_exec ('/your/dir/callset.sh 2>&1');
echo $output
ou
exec ("/your/dir/callset.sh", $output, $exitstatus);
print_r ($output);
Em seguida, verifique a diferença com sua própria chamada set
.
Finalmente, forneça as variáveis ausentes assim:
$output = shell_exec('PATH=aaa:bbb:ddd unoconv -f pdf test.odp 2>&1');