Prerequisiti
Installazione di Apache2
Configurazione di Apache2
Dopo aver installato Apache2, 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.
sudo nano /var/log/apache2/error.log