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.
![]() |
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
- Abra o terminal no seu servidor.
- Execute o comando:
sudo visudo
- 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: