sabato 12 giugno 2010

Apache

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: