mercoledì 13 gennaio 2010

Sito dinamico su virtual host locale [02-03] - Fedora How-to


Virtual hosts in locale
Veniamo a questo punto alla creazione degli hosts virtuali.
Apache gestisce i contenuti in locale nella cartella /var/www/ , che non è proprio il massimo del posizionamento.
Per fare in modo che Apache possa raggiungere, ma soprattutto gestire, contenuti al di fuori di questa cartella è necessario fare alcune modifiche ai file di configurazione.
Quelle proposte sono il minimo indispensabile per il funzionamento del tutto; inoltre, i permessi applicati danno per scontato che non vi siano problemi di utenza di accesso, cioè che non vi sia la necessità di effettuare particolari limitazioni ad utenti specifici.
Nel caso, la documentazione più approfondita, che tratta questi aspetti, da cui sono state attinte le informazioni che seguono potrete trovarla qui (il sito di Miranda), qui (Apache - userdir) e qui (Apache - cartelle pubbliche).

Individuiamo o creiamo prima di tutto una cartella dove ci interessa inserire il materiale.
La sintassi prevederebbe l'obbligo dell'utilizzo del nome public_html, cioè prevedere un percorso del tipo / ... /public_html/nomecartella) ma sotto l'aspetto della funzionalità non è strettamente necessario. Poi fate voi.

Proviamo con Joomla!, ad esempio, e scarichiamo il file attualmente stable nella versione 1.5 in italiano: Joomla_1.5.15_ita-Stable.tgz.
Io nel NB ho un HD da 500 Gb con varie partizioni, di cui una di solo dati da 350GB formattata in EXT3; questa per me è la partizione ideale per parcheggiare un po' di siti di prova e sviluppo.
Ho quindi creato all'interno di questa la cartella Serverspace. Poichè la partizione, che si chiama HD350GB, viene montata nella directory /media , il percorso assoluto di questa cartella sarà /media/HD350GB/Serverspace .
Una volta scaricato, ho scompattato il file scaricato da Joomla! in una cartella chiamata joomla15ita, che ho tagliato ed incollato entro la cartella Serverspace, ottenendo il percorso assoluto /media/HD350GB/Serverspace/joomla15ita.
Ho quindi creato, visto che mancava (ma in questo caso non è indispensabile), la cartella cgi-bin entro la cartella joomla15ita.

A questo punto, in console root ho digitato:
# chmod 755 -R /media/HD350GB/Serverspace
# chmod 701 -R /media/HD350GB/Serverspace/joomla15ita/cgi-bin

Il -R ricorsivo estende i permessi a tutte le cartelle contenute, e questo elemento, cioè l'assegnazione dei permessi, è determinante per la buona riuscita della configurazione automatica iniziale di Joomla!, soprattutto per la cartella Installation ed il file configuration.php contenuti all'interno del sito.
A questo punto vanno creati gli alias, cioè i puntatori alternativi di Apache, quindi ho digitato:
# gedit /etc/httpd/conf.d/alias

ed ho inserito nel file, secondo la sintassi alias /URL-path /directory_del_file/ , le seguenti righe:
Alias /joomla15ita /media/HD350GB/Serverspace/joomla15ita

§Directory /media/HD350GB/Serverspace/joomla15ita§
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
§/Directory§

La cosa interessante è che se ho altri siti contenuti in altre cartelle denominate, ad es. sito02, sito03, ecc. e copio queste cartelle entro la cartella Serverspace, dopo aver inserito all'interno la cartella cgi-bin se mancante ed assegnato i permessi come in precedenza, mi basterà inserire nello stesso file altri gruppi di comandi del tipo:
Alias /sito02 /media/HD350GB/Serverspace/sito02

§Directory /media/HD350GB/Serverspace/sito02§
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
§/Directory§

ecc.

per far si che Apache riconosca anche questi.


Però questo passaggio non basta: è necessario intervenire anche nel cuore della configurazione di Apache, cioè nel file httpd.conf
# gedit /etc/httpd/conf/httpd.conf

Prima di tutto facciamo si che il percorso /media/HD350GB/Serverspace/ , oltre che esistere, sia abilitato; per ottenerlo, è necessario abilitare, nell'intorno della linea 350, la funzione UserDir, commentando (cioè inserendo all'inizio della frase il carattere cancelletto #) la linea "UserDir disabled", e togliendo il commento alla linea finale UserDir, apponendo il percorso di nostro interesse, come di seguito riportato a titolo di esempio:

§IfModule mod_userdir.c§
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
# UserDir disabled#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
UserDir /media/HD350GB/Serverspace
§/IfModule§

Andiamo a questo punto nell'intorno della linea 975 dove è presente il comando NameVirtualHost *:80 e decommentiamolo (cioè togliamo il carattere cancelletto # all'inizio della frase).

#
NameVirtualHost *:80
#

poi andiamo nell'intorno della linea 996 e inseriamo i virtualhost

#§VirtualHost *:80§
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#§/VirtualHost§

§VirtualHost *:80§
DocumentRoot /media/HD350GB/Serverspace/joomla15ita
ServerName joomla15ita
ScriptAlias /cgi-bin/ "/media/HD350GB/Serverspace/joomla15ita/cgi-bin/"
§Directory /media/HD350GB/Serverspace/joomla15ita§
AllowOverride All
Options All
§/Directory§
§/VirtualHost§

§VirtualHost *:80§
DocumentRoot /media/HD350GB/Serverspace/sito02
ServerName sito02
ScriptAlias /cgi-bin/ "/media/HD350GB/Serverspace/sito02/cgi-bin/"
§Directory /media/HD350GB/Serverspace/sito02§
AllowOverride All
Options All
§/Directory§
§/VirtualHost§

ecc.

Mi raccomando: lasciate i cancelletti iniziali solo nelle stringhe di esempio (come il primo blocco sopra, che troverete già impostato nello script), ricordando che una riga che inizia con un cancelletto viene interpretata come una semplice annotazione ininfluente anziché come un'istruzione di programma.

A questo punto si esce da gedit salvando il file httpd modificato, e si lancia il restart di Apache (il restart va fatto obbligatoriamente ogni volta che si modifica il file httpd.conf), con la seguente sintassi:
# /etc/init.d/httpd restart

quindi si modifica il file hosts:
# gedit /etc/hosts

inserendo nel file una riga per ogni host configurato:
127.0.0.1 joomla15ita
127.0.0.1 sito02

e salvando al'uscita.

Ogni host a questo punto potrà essere richiamato nel browser con la sintassi, ad es.
http://joomla15ita

( <-- torna all'01 di 03)

(vai al 03 di 03 --> )

Nessun commento:

Posta un commento