Domande? Problemi?

Iscriviti al Google group:

Pubblicare le home utente con Apache2

Cosa serve?

  1. Apache2 installato e configurato correttamente
  2. Modulo userdir del webserver configurato ed attivato

Focalizzeremo la nostra attenzione sul punto 2.

I moduli estendono le funzionalità del webserver. Per gestirne attivazione e disattivazione, Apache mette a disposizione due comandi:

  • a2enmod elenca i moduli non avviati disponibili e permette di attivarli.
  • a2dismod elenca i moduli avviati disponibili e permette di disattivarli.

Nella pratica, attivazione e disattivazione consistono nella semplice creazione di un collegamento simbolico da /etc/apache2/mods-available/nomemodulo.load a /etc/apache2/mods-enabled/.load. Alcuni moduli hanno inoltre un file aggiuntivo di configurazione del tipo nomemodulo.conf qualora si procedesse all’attivazione manuale, non si dimentichi di aggiungere anche quel collegamento simbolico se necessario!

Quali moduli ho a disposizione?

ls /etc/apache2/mods-available/
actions.load        authz_dbm.load        charset_lite.load  dump_io.load
log_forensic.load    proxy_connect.load           unique_id.load
alias.load          authz_default.load    dav_fs.conf        env.load
mem_cache.conf       proxy_ftp.load               userdir.conf
asis.load           authz_groupfile.load  dav_fs.load        expires.load
mem_cache.load       proxy_http.load              userdir.load
auth_basic.load     authz_host.load       dav.load           ext_filter.load
mime.load            proxy.load                   usertrack.load
auth_digest.load    authz_owner.load      dav_lock.load      file_cache.load
mime_magic.conf      rewrite.load                 version.load
authn_alias.load    authz_user.load       dbd.load           filter.load
mime_magic.load      setenvif.load                vhost_alias.load
authn_anon.load     autoindex.load        deflate.conf       headers.load
negotiation.load     sick-hack-to-update-modules
authn_dbd.load      cache.load            deflate.load       ident.load
php5.conf            speling.load
authn_dbm.load      cern_meta.load        dir.conf           imagemap.load
php5.load            ssl.conf
authn_default.load  cgid.conf             dir.load           include.load
proxy_ajp.load       ssl.load
authn_file.load     cgid.load             disk_cache.conf    info.load
proxy_balancer.load  status.load
authnz_ldap.load    cgi.load              disk_cache.load    ldap.load
proxy.conf           suexec.load

Quali sono già stati attivati?

ls /etc/apache2/mods-enabled/
actions.load  auth_basic.load  authz_default.load    authz_host.load
autoindex.load  dir.conf  env.load   negotiation.load  php5.load
status.load    alias.load    authn_file.load  authz_groupfile.load
authz_user.load  cgi.load    dir.load  mime.load  php5.conf    setenvif.load

Nota

Notare l’assenza di userdir.load

Configurare il modulo userdir.load

Affinchè il webserver pubblicizzi il sito personale di ogni utente, contenuto in ~utente/public_html, modificheremo userdir.conf.

Nota

Nota probabilmente ovvia: Nell’esempio che segue viene usato l’editor jmacs. Ovviamente nulla viete di usare il proprio editor di testi preferito.

jmacs /etc/apache2/mods-available/userdir.conf
<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root
        <Directory /home/*/public_html>
                AllowOverride FileInfo AuthConfig Limit
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
        </Directory>
</IfModule>

In questo modo:

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root
        <Directory /home/users/*/*/public_html>
                AllowOverride FileInfo AuthConfig Limit
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
        </Directory>
</IfModule>

Nota

Ovviamente è stato impostato /home/users/*/*/public_html per rispettare l’organizzazione delle home utente ISI.

Attivare userdir.load

Non resta che procedere all’attivazione di userdir usando a2enmod

a2enmod userdir
Module userdir installed; run /etc/init.d/apache2 force-reload to enable.

E ad inizializzare apache2 come indicato da a2enmod

/etc/init.d/apache2 force-reload
Forcing reload of web server (apache2)...apache2: Could not reliably determine
the server's fully qualified domain name, using 127.0.0.1 for ServerName
waiting apache2: Could not reliably determine the server's fully qualified
domain name, using 127.0.0.1 for ServerName

Verificare che tutto funzioni

La verifica viene fatta, molto semplicemente, puntando un qualunque browser su http://server/~nomeutente.

Od in alternativa, direttamente da server, con un semplicissimo:

lynx http://localhost/~test

Se a risponderci sarà la pagina index.html contenuta in ~test/public_html la procedura sarà andata a buon fine.