Cómo iniciar scripts CGI en Apache2 en Debian 10

27 feb 2021 2 min di lettura
Cómo iniciar scripts CGI en Apache2 en Debian 10
Indice dei contenuti

Introducción

Si su intención es utilizar Apache CGI Scripts en un servidor remoto, siga leyendo; de lo contrario, omita el primer párrafo "Conectando al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará la contraseña para la autenticación. Para conectarse al servidor como root, escriba este comando:

ssh root@IP_DEL_SERVER

A continuación, se le pedirá que ingrese la contraseña del usuario root. Si no usa el usuario root, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie el primer parámetro:

ssh VOSTRO_UTENTE@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario. Ahora está conectado a su servidor.

Prerrequisitos

Instalación de Apache 2.

Configuración de Apache 2

Después de instalar Apache2 en Debian 10, lo primero que debe hacer es habilitar el módulo CGI para Apache2.

Desde la terminal:

sudo a2enmod cgi

Luego reiniciamos Apache2:

sudo service apache2 restart

Creemos la carpeta cgi-bin:

sudo mkdir /var/www/cgi-bin

Ingresemos a la carpeta:

cd /var/www/cgi-bin

Abramos el archivo apache2.conf:

sudo nano /etc/apache2/apache2.conf

Agreguemos las siguientes líneas de código al final del archivo:


ServerName localhost
 ScriptAlias /cgi-bin//var/www/cgi-bin/Options +ExecCGI
 AddHandler cgi-script.cgi.pl.py

Guarde y cierre el archivo.

Ahora abra el archivo serve.cgi.bin.conf:

sudo nano /etc/apache2/conf-available/serve-cgi-bin.conf

Edite el archivo de esta manera:


<IfModule mod_alias.c>

 <IfModule mod_cgi.c>
 Define ENABLE_USR_LIB_CGI_BIN
 </IfModule>
 <IfModule mod_cgid.c>
 Define ENABLE_USR_LIB_CGI_BIN
 </IfModule>
 <IfDefine ENABLE_USR_LIB_CGI_BIN>
 #ScriptAlias /cgi-bin//usr/lib/cgi-bin/#<Directory "/usr/lib/cgi-bin">
 # AllowOverride None
 # Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 # Require all granted
 #</Directory>
 ## cgi-bin config
 ScriptAlias /cgi-bin//var/www/cgi-bin/<Directory "/var/www/cgi-bin/">
 AllowOverride None
 Options +ExecCGI
 </Directory>
 </IfDefine>
 </IfModule>

Guarde y cierre el archivo.

Reiniciamos Apache2:

sudo service apache2 restart

Creemos un ejemplo de CGI Script para probar nuestra configuración: Ingresemos a la carpeta:

cd /var/www/cgi-bin

Creemos un archivo:

sudo touch hello.py

Cambiemos los permisos en el archivo recién creado:

sudo chmod o+x hello.py

Abramos el archivo:

sudo nano hello.py

Pegamos las siguientes líneas de código en el archivo:


#!/usr/bin/env python
 import cgitb
 cgitb.enable()
 print("Content-Type: text/html;charset=utf-8")
 print "Content-type:text/html\r\n\r\n"
 print '<html>'
 print '<head>'
 print '<title> Hello Word </title>'
 print '</head>'
 print '<body>'
 print '<h2>Hello Word </h2>'
 print '</body>'
 print '</html>'

Guarde y cierre el archivo.

Abrimos el navegador y nos conectamos al servidor local a través del nombre de dominio o dirección IP:


http://TUO_INDIRIZZO_IP/cgi-bin/hello.py

Si el script no funciona, busque errores en error.log.


/var/log/apache2/error.log

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.