Cómo iniciar scripts CGI en Apache2 en Ubuntu 16.04 - 17.04

27 feb 2021 2 min di lettura
Cómo iniciar scripts CGI en Apache2 en Ubuntu 16.04 - 17.04
Indice dei contenuti

Prerrequisitos

Instalación de Apache 2

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 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.

sudo nano /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.