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