Apache
Vengono descritti di seguito i passi da seguire per far girare le cgi sotto un server Apache. Con ${nomeDominio}
si indica il dominio di secondo livello, ad esempio carlocaponi.it
.
Creare utenti
# mkdir /home/${nomeDominio}
# chmod u=rwx,g=,o=x /home/${nomeDominio}/
# mkdir /home/${nomeDominio}/public_html
# chmod u=rwx,g=,o=x /home/${nomeDominio}/public_html
Configurazione domini
# cat >> /etc/apache2/httpd.conf << EOF
NameVirtualHost *
<VirtualHost *>
ServerName www.${nomeDominio}
DocumentRoot /home/${nomeDominio}/public_html
CustomLog logs/www.${nomeDominio}-access_log common
ErrorLog logs/www.${nomeDominio}-error_log
</VirtualHost>
EOF
Nel file precedente ho disabilitato la gestione gentoo dei virtual host:
# cat >> /etc/apache2/httpd.conf <<EOF
#Include /etc/apache2/vhosts.d/*.conf
EOF
,ma si puo' utilizzare la filosofia di gentoo, e inserire la sezione NameVirtualHost
e VirtualHost
nel file /etc/apache2/vhost.d/01_${nomeDominio}_vhost.conf
, dopo aver commentato la linea contenente NameVirtualHost
nel file /etc/apache2/vhost.d/00_default_vhost.conf
.
Verifica configurazione domini
# cat >> /home/${nomeDominio}/public_html/index.html << EOF
<html>
<body>
Home page del dominio ${nomeDominio}.
</body>
</html>
EOF
# chmod u=rw,g=,o=r /home/${nomeDominio}/public_html/index.html
Attivare l'esecuzione dei cgi
Occore decommentare le seguenti linee:
# cat >> /etc/apache2/httpd.conf << EOF
<Directory /home/*/public_html/cgi-bin>
Options ExecCGI
SetHandler cgi-script
</Directory>
EOF
Aggiungere le seguenti linee nella sezione VirtualHost
:
# cat >> /etc/apache2/httpd.conf << EOF
ScriptAliasMatch ^/(.*)\.cgi$ /home/${nomeDominio}/public_html/$1.cgi
EOF
Controllare che il server esegua uno script di esempio:
# cat >> /home/${nomeDominio}/public_html/test.cgi << EOF
#!/bin/bash
echo "Content-Type: text/plain"
echo
echo "funziona!"
EOF
# chown apache:apache /home/${nomeDominio}/public_html/test.cgi
# chmod u=rwx,g=,o= /home/${nomeDominio}/public_html/test.cgi
Per il debug delle cgi, conviene tenere un terminale aperto e dare il comando:
# tail -f /var/log/apache2/*error_log
Permessi file
Per tutti i file statici:
# chown apache:apache ${fileStatico}
# chmod ugo-rwx ${fileStatico}
# chmod u+r ${fileStatico}
Per le directory e le cgi:
# chmod apache:apache ${cgiODirectory}
# chmod ugo-rwx ${cgiODirectory}
# chmod u+rx ${cgiODirectory}
Nessun commento:
Posta un commento