Cómo instalar y configurar los scripts CGI de Apache2 en Ubuntu 18.04

27 feb 2021 2 min di lettura
Cómo instalar y configurar los scripts CGI de Apache2 en Ubuntu 18.04
Indice dei contenuti

Introducción

En este tutorial veremos cómo instalar CGI Scripts en Apache2 en Ubuntu 18.04 LTS.

Si su intención es instalar CGI Scripts en un servidor remoto, siga leyendo; de lo contrario, si desea instalar CGI Scripts en su computadora local, omita el primer párrafo "Conexión al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Prerrequisitos

Instalación de Apache 2

Instalación de Python 3

Configuración de Apache 2

Después de instalar Apache2, 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 python3
 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.

sudo nano /var/log/apache2/error.log
Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

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.