Os scripts CGI são uma solução prática para aliviar a carga do servidor da Web Apache. As configurações necessárias do Apache podem ser definidas rapidamente e o processo de concessão de permissões para o diretório e os arquivos CGI é simples.

Quais são os requisitos para scripts CGI no Apache?

Para usar o Common Gateway Interface (CGI) para enviar scripts ao seu servidor da Web Apache, você precisa da seguinte configuração:

  • um servidor em nuvem ou servidor virtual privado (VPS)
  • uma distribuição de servidor Linux, como o CentOS 8 ou o Ubuntu 22.04
  • um servidor da Web Apache que esteja instalado e em execução
Nota

Uma instalação padrão do Linux vem com o Apache já instalado. Se o seu servidor foi criado com a opção de instalação mínima, você precisará instalar e configurar o Apache antes de prosseguir. Saiba como instalar e configurar o Apache para WordPress em nosso artigo relacionado.

Como habilitar scripts CGI nas configurações do Apache

Duas coisas precisam ser configuradas para executar scripts CGI em um servidor Linux com Apache:

  • O Apache precisa ser configurado para que o servidor da Web possa executar scripts CGI.
  • O script precisa ser carregado no local correto e receber as permissões corretas.

Configurações do Apache para scripts CGI no CentOS

Abra o arquivo de configuração do Apache httpd.conf para edição:

sudo nano /etc/httpd/conf/httpd.conf
bash

Encontre a seção que diz:

#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>
text

Substitua a linha Options None pelas duas linhas a seguir:

Options +ExecCGI
AddHandler cgi-script .cgi .pl .py
text

A primeira linha diz ao Apache para executar arquivos CGI que são carregados no diretório /var/www/cgi-bin directory. A segunda linha informa ao Apache que qualquer arquivo que termine em .cgi, .pl (Perl script) ou .py (Python script) é considerado um script CGI.

A seção agora é a seguinte:

#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl
    Require all granted
</Directory>
text

Salve e saia do arquivo. Agora reinicie o Apache para que as alterações tenham efeito:

sudo systemctl restart httpd
bash

Configurações do Apache para scripts CGI no Ubuntu

Nos sistemas Ubuntu, como o Ubuntu 22.04, o Apache é configurado por padrão para permitir a execução de scripts CGI no diretório designado /usr/lib/cgi-bin . Você não precisa alterar nenhuma configuração do Apache. Entretanto, o módulo CGI do Apache deve ser ativado antes que os scripts CGI possam ser executados. Para fazer isso, você precisará criar um link simbólico (:

sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/
bash

Em seguida, reinicie o Apache para que as alterações tenham efeito:

sudo systemctl restart apache2
bash

Como fazer upload do script CGI e definir permissões

Para verificar a funcionalidade do script CGI em seu servidor Apache, recomendamos começar com um script de teste. Crie o arquivo test.cgi no cgi-bin designado do servidor e abra o script de teste para edição:

  • CentOS: sudo nano /var/www/cgi-bin/test.cgi
  • Ubuntu: sudo nano /usr/lib/cgi-bin/test.cgi

Adicione o seguinte conteúdo a esse arquivo:

#!/usr/bin/perl
print "Content-type: text/html\n\n"; 
print "<h1>Hello world</h1>";
text

Salve e saia do arquivo. Na próxima etapa, dê ao arquivo as permissões de execução necessárias:

  • CentOS: sudo chmod 755 /var/www/cgi-bin/test.cgi
  • Ubuntu: sudo chmod 755 /usr/lib/cgi-bin/test.cgi
Nota

Ao usar os parâmetros chmod 755 , o script pode ser lido, editado e executado pelo proprietário. Para o grupo e outros usuários, há acesso de leitura e a possibilidade de executar o script.

Visualize o script em um navegador, usando o nome de domínio ou o endereço IP:

http://example.com/cgi-bin/test.cgi
http://192.168.0.1/cgi-bin/test.cgi
text

Se a configuração for bem-sucedida, a mensagem “Hello world!” será exibida.

Como solucionar erros de script CGI

404 error: Um erro 404 significa que o URL não pode ser encontrado. Verifique se o script foi adicionado ao diretório correto.

  • CentOS: O diretório CGI padrão é var/www/cgi-bin/
  • Ubuntu: O diretório CGI padrão é /usr/lib/cgi-bin

Erro 500 do servidor: Quando o erro 500 aparece em conexão com scripts CGI no Apache, isso geralmente se deve ao fato de o script não ter as permissões corretas. Verifique se o script tem permissões de execução (chmod 755) .

Este artigo foi útil?
Ir para o menu principal