Iremos admitir que você já sabe instalar o Apache e já utiliza-o com PHP, HTML,…caso não saiba pesquise na internet como instalá-los. O bom de usar CGI é que você pode executar comando do Shell Script na sua página Web.
A maioria das distribuições já possuem o módulo CGI do Apache configurado e com o suporte a ele.
Caso deseje certificar-se de que o módulo já está carregado, basta verificar em
Obs: Estou usando o Editor Nano, mas vc pode usar o de sua preferência. Logue-se como root , se não possuir o sudo.
Veja se dentro do arquivo aberto há essa linha descomentada
Certifique-se também de que já está habilitado
Se estiver comentado (#), “descomente” e salve o arquivo.
Agora vamos informar ao Apache quais os formatos que desejamos trabalhar
Procure nele a linha que possui o seguinte código
#AddHandler cgi-script .cgi
Se estiver comentado, “descomente” e adicione o .sh no final, deixando-o assim
AddHandler cgi-script .cgi .sh
Caso não esteja habilitado, rode esse comando para leitura de arquivos CGI
Por padrão no Debian Jessie há uma pasta que manda o http://localhost/cgi-bin/ para /usr/lib/cgi-bin , ou seja, se você pôr um arquivo cgi dentro de /usr/lib/cgi-bin automaticamente quando vc acessar seu http://localhost/cgi-bin/ ele irá acessar /usr/lib/cgi-bin. Mas caso vc deseje alterar o endereço, para por exemplo: http://localhost/sh/ , então vc precisa editar o arquivo 000-default.conf e adicionar uma linha do com ScriptAlias nele, assim
E adicione ANTES da tag o seguinte código
Salve-o e depois restarte o Apache
Ou só releia o arquivo de configuração:
Depois é só criar um arquivo teste, exemplo o que vou disponibilizar aqui abaixo, salvá-lo no diretório /usr/lib/cgi-bin e depois acessar o endereço http://localhost/cgi-bin/ ou http://localhost/sh/ , dependendo se vc criou alias do Document Root ou não, e ver se está tudo ok.
Após salvar o arquivo, não esqueça de dar permissão de visualização para ele
Arquivo teste.cgi
Caso deseje, fiz esse script que faz TODAS AS ETAPAS acima descritas para Habilitar CGI e .sh no Apache, se não quiser rodá-lo, veja as alterações que ele efetua!
debian shellscript apache dicas