RHEL7: distribuire un’applicazione CGI su Apache

By | Dicembre 4, 2018

Nota: questo è un obiettivo d’esame RHCE 7.

Prerequisiti

Innanzitutto, seguire le istruzioni per installare un server Web Apache.

Procedura di configurazione

Crea lo script Perl /var/www/cgi-bin/hello.pl e inserisci le seguenti linee:

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, World!";

Rendi questo script eseguibile:

# chmod 755 /var/www/cgi-bin/hello.pl

Riavvia il servizio httpd:

# systemctl restart httpd

Controlla che il valore booleano di httpd_enable_cgi di SELinux sia attivo (è attivo per impostazione predefinita):

# getsebool httpd_enable_cgi
httpd_enable_cgi --> on

Nota: Un altro booleano di SELinux utile da ricordare è httpd_can_sendmail: consente al server httpd di inviare e-mail.

Controlla il servizio httpd:

# yum install -y elinks
# elinks http://localhost/cgi-bin/hello.pl

In alternativa, se si desidera utilizzare una directory diversa da /var/www/cgi-bin/default (/webapp per esempio), si avranno alcuni passaggi aggiuntivi.

Crea la directory /webapp:

# mkdir /webapp

Sposta il file hello.pl in esso:

# mv /var/www/cgi-bin/hello.pl /webapp

Configura la configurazione di SElinux per la directory / webapp:

# yum install -y setroubleshoot-server
# semanage fcontext -a -t httpd_sys_script_exec_t "/webapp(/.*)?"
# restorecon -R /webappelinks /usr/share/httpd/manual/howto/cgi.html

Modifica il file /etc/httpd/conf/httpd.conf e sostituisci l’opzione ‘ScriptAlias’ con la seguente riga:

ScriptAlias /cgi-bin/ "/webapp/"

Nello stesso file, dove si trova la configurazione del tuo sito web (o host virtuale), aggiungi le seguenti linee:

<Directory "/webapp">
AllowOverride None
Options None
Require all granted
</Directory>

Nella stessa stanza, puoi facoltativamente aggiungere le seguenti righe (ma non sembra obbligatorio):

Options ExecCGI
AddHandler cgi-script .pl

Controlla il file di configurazione:

# apachectl configtest
Syntax OK

Riavvia il servizio httpd:

# systemctl restart httpd

Tempo di prova

Controlla l’esecuzione dello script Perl:

# yum install -y elinks
# elinks http://localhost/cgi-bin/hello.pl

Suggerimento utile

Se non ricordi la sintassi di qualsiasi direttiva, digita:

# yum -y install httpd-manual
# elinks /usr/share/httpd/manual/howto/cgi.html

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.