Web Server
I server web sono utilizzati per fornire pagine web ai client che ne fanno richiesta tramite un browser; svolge, allo stesso tempo, la funzione di contenitore (di pagine web, di materiale multimediale, di programmi e altro) ed esecutore (di istruzioni in arrivo dai client o da altri server).
Individuato l'indirizzo IP (corrispondente all'indirizzo alfanumerico dell'URL) e il server contenente la risorsa desiderata, entra in gioco il protocollo HTTP: il browser invia una richiesta GET (dal verbo inglese get, traducibile con “ottenere”, “ricevere”) al Server Web che risponde inviando il codice HTML della pagina o della risorsa cercata.
Il browser legge i tag HTML inclusi nel codice ricevuto in risposta, formatta la pagina così come da indicazioni recepite e la visualizza a schermo.
Apache è il server web più utilizzato nei sistemi GNU/Linux. Il protocollo più utilizzato per il trasferimento delle pagine web e quindi per la comunicazione tra server e client è l'HTTP (Hyper Text Transfer Protocol). Sono anche supportati protocolli come HTTPS (Hyper Text Transfer Protocol over Secure Sockets Layer) e FTP (File Transfer Protocol), un protocollo per caricare e scaricare file dalla rete.
I web server Apache vengono comunemente usati in combinazione con il motore di database MySQL, il linguaggio di scripting per il pre-processamento dell'ipertesto PHP (Pre-processor Hyper Text) e altri noti linguaggi di scripting come Python e Perl. Questa configurazione viene denominata LAMP (Linux, Apache, MYSQL e Perl/Phyton/PHP) e costituisce una piattaforma robusta e potente per lo sviluppo e l'installazione di applicazioni basate sul web.
I s t a l l a z i o n e
sudo apt-get install apache2
Per avviarlo eseguire il comando:
sudo /etc/init.d/apache2 restart
Nella vostra home, create una directory, chiamata public_html, che diventerà la vostra web root dove caricare i file html:
mkdir /home/thor/public_html -- nel mio caso utente=thor
C o n f i g u r a r e A p a c h e
I file di configurazione sono conentuti nella direcory: /etc/apache2/
Apache2 ha il concetto di siti, che sono configurazioni separate e che il webserver andrà a leggere in:
/etc/apache2/sites-available
In questa directory c'è un sito disponibile, chiamato default, ma possono essere caricate più configurazioni contemporaneamente, attivando di volta in volta soltanto quelle necessarie.
Per creare il nuovo sito, copiare il sito di default come punto di partenza:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/primosito
Modificare nel sito creato la direttiva DocumentRoot che indica la directory base (la radice) dove Apache dovrà cercare i file con i contenuti.
Nel vostro caso modificare DocumentRoot da /var/www in /home/thor/public_html/ utilizzando un editor di testo, ad esempio:
sudo gedit /etc/apache2/sites-available/primosito
Disattivare il vecchio sito (default) ed attivare quello nuovo (primosito).
sudo a2dissite default && sudo a2ensite primosito
Ultimo ma non meno importante passaggio è il riavvio di Apache2:
sudo /etc/init.d/apache2 restart
Attenzione nel proxi del browser aggiugere come eccezione (No proxy for)localhost.
Creare un file di test in /home/thor/public_html:
echo 'funziona!' > /home/thor/public_html/index.html
Come prova accedere al browser con url http://localhost/ e se funziona compare il messaggio "funziona!".
Ritorniamo al file primostio e apriamo la direttiva:
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
Indexes è un opzione che dice ad Apache di generare un elenco in formato HTML dei contenuti di una directory quando il relativo percorso viene richiesto da un browser ma non c'è un file index.html per quella cartella. Senza questa opzione una direcotry senza il file index.html presenterebbe un messaggio di errore.
FollowSymLinks consente ad Apache di seguire dei link all'interno della DocumentRoot.
AllowOverride controlla l'uso del file .htaccess.
E' stata installata una configurazione di base, pagine html statiche, adatta per test in locale.
C u s t o m i z z a z i o n e
Modificare il file principale per la configurazione di Apache 2, dopo aver fatto un backup:
/etc/apache2/apache2.conf
Riavviare apache2 per applicare le modifiche.
ServerRoot è impostatto di default a "/etc/apache2"
/etc/apache2/httpd.conf
Di default è vuoto e normalmente contiene la direttiva Include che specifica da quali altri file di configurazione andare a prelevare le informazioni specifiche di ogni sito.
/etc/apache2/ports.conf
Port number del serve in ascolto. Di solito è ad 80. Modificare questo valore in 127.0.0.1:80 per fare in modo che Apache2 ascolti solo l'interfaccia di loopback e non sia disponibile verso internet.
/etc/apache2/conf.d/
Contiene la configurazione di default di charset.
/etc/apache2/mods-available/
Contiene tutti i moduli istallati per il server.
/etc/apache2/mods-enabled/
contiene i link simbolici ai file presenti nella suddetta directory e servono per abilitarli o meno.
...to be continued.....