Habilitar Cgi-Shell no Apache2
Dica publicada em Shell Script / Introdução
Habilitar Cgi-Shell no Apache2
Nessa dica ajudo a mostrar como habilitar a execução de comandos Shell dentro de páginas web, por meio de CGI no Apache2.
sudo nano /etc/apache2/mods-available/cgi.load
Agora verifique-se que ele esteja habilitado no arquivo "/etc/apache2/mods-enabled/cgi.load":
sudo nano /etc/apache2/mods-enabled/cgi.load
Obs.: Se nos dois arquivos essa linha estiver comentada, com um '#" no inicio, retire-o e salve o arquivo.
Agora que temos o módulo habilitado, precisamos informar ao Apache qual o formato a ser manipulado para cgi-script no arquivo "/etc/apache2/mods-enabled/mime.conf", no meu caso usei o tradicional '.sh'
Abra o arquivo com seu editor de texto:
sudo nano /etc/apache2/mods-enabled/mime.conf
Procure a linha:
#AddHandler cgi-script .cgi
Deixe-a assim:
E além disso, precisamos ter um diretório o usuário do Apache, no caso o 'www-data', tenha poderes. Então fiz:
$ sudo mkdir /home/shell
$ sudo chmod 771 /home/shell
$ sudo chown www-data /home/shell
$ sudo chgrp rai3mb /home/shell
Ok, criei o diretório, deixei o 'www-data' como usuário dono dele e como grupo o do meu usuário 'rai3mb', para que eu possa manipular arquivos com meu usuário.
Agora basta criar o diretório virtual no apache apontando para o '/home/shell', edite o arquivo "/etc/apache2/sites-available/default":
sudo nano /etc/apache2/sites-available/default
Obs.: Script baseado em: Script: Transformar eBook em Audiobook
Basta salvar dentro do diretório que você criou, no meu caso /home/shell, dar permissão de execução para o arquivo 'form_teste.sh', e chamar no Browser:
http://localhost/shell/pag_teste.html
pag_teste.html

form_teste.sh
Até a próxima.
@rai3mb
Habilitar módulo cgi
Certifique-se de que o módulo cgi esteja sendo carregado no arquivo "/etc/apache2/mods-available/cgi.load":sudo nano /etc/apache2/mods-available/cgi.load
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
Agora verifique-se que ele esteja habilitado no arquivo "/etc/apache2/mods-enabled/cgi.load":
sudo nano /etc/apache2/mods-enabled/cgi.load
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
Obs.: Se nos dois arquivos essa linha estiver comentada, com um '#" no inicio, retire-o e salve o arquivo.
Agora que temos o módulo habilitado, precisamos informar ao Apache qual o formato a ser manipulado para cgi-script no arquivo "/etc/apache2/mods-enabled/mime.conf", no meu caso usei o tradicional '.sh'
Abra o arquivo com seu editor de texto:
sudo nano /etc/apache2/mods-enabled/mime.conf
Procure a linha:
#AddHandler cgi-script .cgi
Deixe-a assim:
AddHandler cgi-script .cgi .sh
Preparando o Ambiente
Agora você precisa habilitar o parâmetro 'ExecCGI' dentro de 'Options' na referência ao diretório virtual do Apache2, no meu caso não modifiquei o padrão (/var/www), em vez disso criei um novo alias para um novo diretório criado para brincar com o shell.E além disso, precisamos ter um diretório o usuário do Apache, no caso o 'www-data', tenha poderes. Então fiz:
$ sudo mkdir /home/shell
$ sudo chmod 771 /home/shell
$ sudo chown www-data /home/shell
$ sudo chgrp rai3mb /home/shell
Ok, criei o diretório, deixei o 'www-data' como usuário dono dele e como grupo o do meu usuário 'rai3mb', para que eu possa manipular arquivos com meu usuário.
Agora basta criar o diretório virtual no apache apontando para o '/home/shell', edite o arquivo "/etc/apache2/sites-available/default":
sudo nano /etc/apache2/sites-available/default
#!/bin/bash echo Content-type: text/html echo #--------------------------------------------------- read DADOS FRASE=$(echo "$DADOS" | cut -d'=' -f2 | tr '+' ' ') LANG=$(echo "$DADOS" | cut -d'=' -f3) #--------------------------------------------------------------------------------------------------------- touch frase.mp3 wget -q -U Mozilla -O frase.mp3 "http://translate.google.com/translate_tts?ie=UTF-8&tl=$LANG&q=$FRASE" cat <FIM echo "
Dados recebidos: $DADOS"
Obs.: Script baseado em: Script: Transformar eBook em Audiobook
Basta salvar dentro do diretório que você criou, no meu caso /home/shell, dar permissão de execução para o arquivo 'form_teste.sh', e chamar no Browser:
http://localhost/shell/pag_teste.html

pag_teste.html

form_teste.sh
Até a próxima.
@rai3mb