[RESOLVIDO] PHP: Comando exec() não FUNCIONA

Entrando com mais um post. Dica de hoje te ajuda a resolver um problema que pela morrrr.

Lá vou eu executar um comando linux via PHP e nada de funcionar; já via terminal, funcionava!

<?php
// funcionaram via terminal e via PHP
echo exec("sudo whoami");
echo exec("sudo ls");
 
// funcionaram via terminal e via PHP não
echo exec('sudo init 6');
echo exec("sudo lp -d nome_impressora /var/spool/cups/arquivo");
?>

Putz!!! e agora… olhei logs, coloquei parâmetros de retorno na função e nada.

Partindo do princípio que o usuário via terminal é diferente de quando se executa via web browser, achei a solução.

O usuário do Apache www-data precisa de permissões para executar certos comandos.

Para resolver o meu e o seu problema, pois senão você não estaria aqui, faça o seguinte:

sudo su

# visudo -f /etc/sudoers

Adicione essa linha no fim do arquivo:
www-data ALL=NOPASSWD: ALL

Salve o arquivo e seja Feliz!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *