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