Este blog é um complemento do nosso canal no YouTube. Clique em @CanalQb para seguir e acompanhar nossos vídeos!

Sugestões de pesquisas

Executando comandos systemctl no PHP via Ubuntu

#PHP; #Ubuntu; #systemctl

Executando comandos systemctl no PHP via Ubuntu

Em aplicações web que rodam em servidores Linux, pode haver a necessidade de monitorar ou manipular serviços do sistema diretamente pelo navegador. Uma das formas de fazer isso com PHP é usando o comando systemctl para interagir com serviços no Ubuntu. Este artigo mostra como executar o comando systemctl status dentro de um script PHP e exibir a saída em tempo real.

@CanalQb PHP + Ubuntu: Interagindo com systemctl
Canal Qb no YouTube

Exemplo de código PHP

Abaixo, veja como utilizar popen() para executar o comando e fread() para exibir a saída no navegador:

<?php
  // Executa o comando e abre um stream de leitura
  $stream = popen("sudo systemctl status youtube", 'r');

  // Lê o stream e envia para a saída
  while (!feof($stream)) {
      echo fread($stream, 1024);
      flush();
  }

  // Fecha o stream
  pclose($stream);
?>

Esse script PHP executa o comando sudo systemctl status youtube, e exibe a saída do terminal diretamente no navegador em tempo real. Isso é útil para depuração e visualização rápida do status de serviços no servidor.

Importante: permissões do usuário www-data

Por padrão, o usuário www-data (que executa o Apache) não tem permissões de superusuário. Caso apareça a seguinte mensagem de erro:

www-data : user NOT in sudoers ; TTY=unknown ; PWD=/var/www/html ; USER=root ; COMMAND=/bin/systemctl status youtube

Você precisará dar permissões ao www-data para usar comandos com sudo. Faça isso com muito cuidado, seguindo os passos abaixo:

Adicionando www-data ao sudoers

  1. Abra o terminal no seu servidor.
  2. Execute o comando: sudo visudo
  3. Adicione a seguinte linha ao final do arquivo:
www-data ALL=(ALL) NOPASSWD: ALL

Essa linha permitirá que o Apache execute comandos sudo sem solicitar senha.

Aviso de segurança: dar permissões irrestritas ao www-data pode comprometer seu servidor se houver brechas no código PHP. Sempre restrinja o uso de sudo apenas ao necessário e utilize autenticação segura, firewalls e permissões mínimas no sistema.

Conclusão

Executar comandos systemctl via PHP pode ser uma ferramenta útil em situações administrativas e automações simples. No entanto, exige cuidado com a segurança, permissões e boas práticas no desenvolvimento. Idealmente, evite usar sudo com www-data sempre que possível e prefira soluções baseadas em sockets ou APIs intermediárias mais seguras.

Para mais informações sobre o uso seguro de sudo com Apache, acesse a documentação oficial do sudoers:

https://www.sudo.ws/man/1.8.13/sudoers.man.html

Postar um comentário

Comente só assim vamos crescer juntos!
CanalQb mais próximo Quer falar com o CanalQb?
Em que posso te ajudar?
Fale comigo