[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!
Olá,
Para uma página em php num servidor estrangeiro rodar um script em python3 em outra máquina, usando shell_exec, é preciso ter um servidor apache instalado nessa máquina?
Hercules,
Acredito que não precisa.