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.

[ Hits: 1.863 ]

Por: Marcos Oliveira em 20/12/2018 | Blog: http://terminalroot.com.br/


Introdução



No tutorial de hoje, 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.

Atualize todo o sistema de maneira efetiva com os dois comandos abaixo:

sudo pacman -Syy
sudo pacman -Syu

Instale o Apache:

sudo pacman -S apache

Habilite o Apache para iniciar junto com o sistema e também start para já poder usá-lo:

sudo systemctl enable httpd.service
sudo systemctl start httpd.service

Por padrão, o conteúdo que se acessa pelo localhost está no endereço /srv/http/. Lá, após instalação não haverá nada, então crie um arquivo "index.html" e insira um conteúdo nele para poder visualizar, use um editor de texto ou com o comando abaixo.

Lembre-se que dentro deste diretório precisa ser root ou sudo, não tente "sudo echo":

echo 'Minha pagina HTML' | sudo tee /srv/http/index.html

Agora, abra o navegador e acesse o endereço:

http://localhost/

você verá o conteúdo que você escreveu.

Usando um diretório alternativo, sem necessidade de root ou sudo

Os diretórios de usuários estão disponíveis por padrão através de:

http://localhost/~usuario/

e mostram o conteúdo de ~/public_html.

Note que há o sinal til (~) na URL, logo, digite ele também antes do seu nome de usuário, caso contrário haverá erro 404, mas para criar uma visualização customizada é necessário criar o diretório, alterar as permissões e criar um arquivo html:

mkdir ~/public_html
chmod o+x ~
chmod o+x ~/public_html/
chmod o+r ~/public_html/
echo 'Teste de página WEB com diretorio do usuario' > ~/public_html/index.html
sudo systemctl restart httpd.service

Depois acesse o endereço:

http://localhost/~seu_usuario/

Entendimentos básicos

O Apache possui opções e diretivas (<Directory ..i>) para determinar suas configurações.

O arquivo de configuração principal é /etc/httpd/conf/httpd.conf, que inclui vários outros arquivos de configuração. Ao abri-lo, verifique as linhas que estão descomentadas (sem começar com tralha #), quer dizer que já estão pré-configuradas para você, vejamos alguns exemplos:
  • ServerRoot "/etc/httpd" - Diretório raiz do Apache onde ficam os arquivos de configuração /etc/httpd/conf/ e os módulos /etc/httpd/modules/
  • Listen 80 - Porta que o servidor irá exibir as páginas na Web via http, se quiser que fique acessível só pra seu computador e ninguém consiga acessar externamente altere para Listen 127.0.0.1:80
  • ServerAdmin you@example.com - Este é o endereço de e-mail do administrador, que pode ser encontrado, por exemplo, em páginas de erro. Se quiser altere para o que você deseja.
  • DocumentRoot "/srv/http" - Este é o diretório onde você deve colocar suas páginas da web. Você pode alterá-lo, mas não se esqueça de também alterar <Directory "/srv/http"> para o que você mudou seu DocumentRoot, ou você provavelmente vai ter um erro 403 (falta de privilégios) quando tentar acessar a nova raiz do documento. Não se esqueça de alterar a linha "Require all denied" para "Require all granted", caso contrário você receberá um erro 403. Lembre-se de que o diretório DocumentRoot e suas pastas pai devem permitir permissão de execução para outros (pode ser configurado com chmod o+x /path/to/DocumentRoot ), caso contrário você obterá um erro 403 .
  • AllowOverride None - Esta diretiva nas seções <Directory> faz com que o Apache ignore completamente os arquivos .htaccess. Observe que esse é o padrão do Apache 2.4, portanto, é necessário permitir explicitamente substituições se você planeja usar arquivos .htaccess. Se você pretende usar mod_rewrite ou outras configurações em arquivos .htaccess, pode permitir quais diretivas declaradas nesse arquivo podem substituir a configuração do servidor.
  • ServerSignature Off - Para ocultar informações do servidor, como as versões do Apache, linguagem, sistema operacional...
  • Include "conf/extra/httpd-userdir.conf" - Se você não quiser que os diretórios dos usuários estejam disponíveis na web, comente essa linha. Ou se quiser alterar o nome e/ou localização do mesmo, edite o arquivo: "/etc/httpd/conf/extra/httpd-userdir.conf".
  • Entre outras opções e diretivas, que podem ser vistas no próprio arquivo.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Habilitando Shell Web cgi
   3. Solução de possíveis problemas
Outros artigos deste autor

Vamos usar Slack!

Funtoo + bspwm + Polybar + Rofi - Instalação e Configuração

FreeBSD Release 11.1 - Introdução, instalação e customização

Leitura recomendada

Usando variáveis de ambiente

Instalação dual boot com 2 HDs com Windows XP e Ubuntu Linux

Introdução ao Linux: Instalação do Xubuntu

Linux Básico - Parte I

Software Livre: primeiras impressões

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts