Como Rodar Shell Script e Python via Apache no Linux
Neste tutorial, vamos configurar o Apache para rodar Shell Script e Python como exemplos, mas você pode testar em qualquer linguagem de programação de seu interesse. Também vamos usar de cobaia o Arch Linux, mas com mínimas adaptações. É o mesmo procedimento para qualquer Linux ou BSD e até mesmo qualquer sistema baseado em UNIX.
Parte 3: Solução de possíveis problemas
1. O Apache usa um programinha chamado "suexec", que serve pra gerar problemas de permissão. Verifique se ele está habilitado e carregado com o Apache, use o comando:
apachectl -V
Se na saída houver a uma linha com o conteúdo:
-D SUEXEC_BIN="/usr/bin/suexec"
tente renomeá-lo e reiniciar o Apache. Depois verifique se agora funcionou a exibição via browser:
sudo mv /usr/bin/suexec /usr/bin/suexec_tchau
sudo systemctl restart httpd
2. Se aparecer mensagens como:
Proibido, POST Method Not Allowed
verifique os logs de erro lá em /var/log/apache_ou_http/.
Problemas com caracteres em hexadecimais em requisições POST ou GET? Haha, aí é seu programinha que irá resolver, esse não é um problema do Apache, no entanto, existem alguns módulos que podem lhe ajudar. Mas vai por mim, é melhor você mexer a cuca e tentar resolver com sua linguagem de programação!
Caso tenha ficado alguma dúvida, assista o vídeo abaixo:
Abraços!
apachectl -V
Se na saída houver a uma linha com o conteúdo:
-D SUEXEC_BIN="/usr/bin/suexec"
tente renomeá-lo e reiniciar o Apache. Depois verifique se agora funcionou a exibição via browser:
sudo mv /usr/bin/suexec /usr/bin/suexec_tchau
sudo systemctl restart httpd
2. Se aparecer mensagens como:
Proibido, POST Method Not Allowed
verifique os logs de erro lá em /var/log/apache_ou_http/.
Problemas com caracteres em hexadecimais em requisições POST ou GET? Haha, aí é seu programinha que irá resolver, esse não é um problema do Apache, no entanto, existem alguns módulos que podem lhe ajudar. Mas vai por mim, é melhor você mexer a cuca e tentar resolver com sua linguagem de programação!
Dicas adicionais
Se quiser que o Apache leia seus "index.sh", "index.py"... encontre a palavra "index.html" e ao lado dela inclua os indexes que deseja, exemplo:
DirectoryIndex index.html index.sh index.py
- Você pode habilitar o TLS;
- Criar uma chave e um certificado (autoassinado) OpenSSL CSR;
- Virtual Hosts /etc/hosts;
- Integração com MySQL e PHP;
- Protocolo HTTPS.
Caso tenha ficado alguma dúvida, assista o vídeo abaixo:
Links Úteis
- Welcome to The Apache Software Foundation!
- Directive Index - Apache HTTP Server Version 2.4
- Apache Tutorial: Dynamic Content with CGI - Apache HTTP Server Version 2.4
- Apache/pt-br - Gentoo Wiki
- Apache HTTP Server - ArchWiki
- Habilitando CGI e .sh no Apache do Debian Jessie - Terminal Root
Abraços!