Introduzione
Se il vostro intento è utilizzare Apache CGI Scripts su di un server in remoto continuate a leggere, altrimenti saltate il primo paragrafo "Connessione al Server" e leggere il successivo.
Connessione al Server
Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno della password per l'autenticazione.
Per connettersi al server come utente root digitare questo comando:
ssh root@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password dell'utente root.
Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare il primo parametro:
ssh VOSTRO_UTENTE@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password del vostro utente.
Siete ora connessi al vostro server.
Prerequisiti
Installazione di Apache2.
Configurazione di Apache2
Dopo aver installato Apache2 su Debian 10, la prima cosa da fare è abilitare il modulo CGI per Apache2.
Da terminale:
sudo a2enmod cgi
Quindi riavviamo Apache2:
sudo service apache2 restart
Creiamo la cartella cgi-bin:
sudo mkdir /var/www/cgi-bin
Entriamo nella cartella:
cd /var/www/cgi-bin
Apriamo il file apache2.conf:
sudo nano /etc/apache2/apache2.conf
Aggiungiamo alla fine del file le seguenti righe di codice:
ServerName localhost
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
Options +ExecCGI
AddHandler cgi-script .cgi .pl .py
Salvare e chiudere il file.
Aprire adesso il file serve.cgi.bin.conf:
sudo nano /etc/apache2/conf-available/serve-cgi-bin.conf
Modificare il file in questo modo:
<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>
Salvare e chiudere il file.
Riavviamo Apache2:
sudo service apache2 restart
Creiamo un esempio di CGI Script per testare nostra configurazione:
Entriamo nella cartella:
cd /var/www/cgi-bin
Creiamo un file:
sudo touch hello.py
Cambiamo i permessi al file appena creato:
sudo chmod o+x hello.py
Apriamo il file:
sudo nano hello.py
Incolliamo le seguenti righe di codice all'interno del file:
#!/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>'
Salvare e chiudere il file.
Apriamo il browser e colleghiamoci al server locale tramite il nome dominio o indirizzo IP:
http://TUO_INDIRIZZO_IP/cgi-bin/hello.py
Se lo script non dovesse funzionare, controllare eventuali errori nell'error.log.
/var/log/apache2/error.log