Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Riga 3: Riga 3:
'''LAMP''' è un acronimo che indica un ambiente server in cui siano installati '''L'''inux, '''A'''pache, '''M'''ySQL e '''P'''HP. In questa guida vedremo come installare un server Apache2 su Debian Lenny, come configurare il modulo SSL e come fornire supporto per il linguaggio di scripting PHP5 e i database basati su MySQL.
'''LAMP''' è un acronimo che indica un ambiente server in cui siano installati '''L'''inux, '''A'''pache, '''M'''ySQL e '''P'''HP. In questa guida vedremo come installare un server Apache2 su Debian Lenny, come configurare il modulo SSL e come fornire supporto per il linguaggio di scripting PHP5 e i database basati su MySQL.
<br>
<br>
In tutta la guida assumeremo che il nome del server Debian sia <tt>'''demo'''</tt> e il suo indirizzo IP sia <tt>'''123.45.6.7.890'''</tt>. Questi valori vanno ovviamente sostituiti con quelli del vostro ambiente di lavoro.
In tutta la guida assumeremo che il nome del server Debian sia <code>'''demo'''</code> e il suo indirizzo IP sia <code>'''123.45.6.7.890'''</code>. Questi valori vanno ovviamente sostituiti con quelli del vostro ambiente di lavoro.


=Installazione di Apache2=
=Installazione di Apache2=
Riga 10: Riga 10:
# aptitude install apache2-mpm-prefork apache2-utils libexpat1
# aptitude install apache2-mpm-prefork apache2-utils libexpat1
</pre>
</pre>
Probabilmente noterete, all'avvio del web server, il messaggio di avvertimento
Probabilmente noterete, all'avvio del web server, il messaggio di avvertimento:
<pre>
<pre>
apache2: Could not reliably determine the server's fully qualified domain name,
apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.0.1 for ServerName
using 127.0.0.1 for ServerName
</pre>
</pre>
Per eliminarlo è sufficiente aprire il file di configurazione di Apache2
Per eliminarlo è sufficiente aprire il file di configurazione di Apache2:
<pre>
<pre>
# nano /etc/apache2/apache2.conf
# nano /etc/apache2/apache2.conf
</pre>
</pre>
e aggiungere la direttiva
e aggiungere la direttiva:
<pre>
<pre>
ServerName demo
ServerName demo
Riga 29: Riga 29:
A questo punto aprite il vostro browser preferito e navigate verso l'indirizzo '''http://123.45.67.890'''. Sarete accolti dalla pagina di benvenuto del vostro web server: It Works!
A questo punto aprite il vostro browser preferito e navigate verso l'indirizzo '''http://123.45.67.890'''. Sarete accolti dalla pagina di benvenuto del vostro web server: It Works!
=Configurazione di SSL=
=Configurazione di SSL=
Le connessioni sicure SSL sono vitali per le aree di amministrazione dei nostri siti, poichè assicurano segretezza e protezione alle password che digitiamo. In questa sezione vedremo come configurare un certificato auto-firmato e come creare un virtual host sulla porta https (443) per le nostre connessioni.<br>
Le connessioni sicure SSL sono vitali per le aree di amministrazione dei nostri siti, poiché assicurano segretezza e protezione alle password che digitiamo. In questa sezione vedremo come configurare un certificato auto-firmato e come creare un virtual host sulla porta https (443) per le nostre connessioni.<br>
'''NOTA''': i certificati auto-firmati, poichè non verificati da un'autorità internazionale, generano nel browser un messaggio di avvertimento. Per questo motivo sono adatti in ambienti intranet o su server dove il traffico https serve solo per amministrazione e non per fornire servizi a utenti esterni.
'''NOTA''': i certificati auto-firmati, poiché non verificati da un'autorità internazionale, generano nel browser un messaggio di avvertimento. Per questo motivo sono adatti in ambienti intranet o su server dove il traffico https serve solo per amministrazione e non per fornire servizi a utenti esterni.
==Installazione==
==Installazione==
Creiamo inannzitutto una directory dove archiviare i nostri certificati:
Creiamo innanzitutto una directory dove archiviare i nostri certificati:
<pre>
<pre>
# mkdir /etc/apache2/ssl
# mkdir /etc/apache2/ssl
Riga 132: Riga 132:
</VirtualHost>
</VirtualHost>
</pre>
</pre>
Apache non è in ascolto sulla porta 443, quella normalmente utilizzata da apache-ssl, e quindi lo dobbiamo istruire modificando il file <tt>/etc/apache2/ports.conf</tt> aggiungendo la riga:
Apache non è in ascolto sulla porta 443, quella normalmente utilizzata da apache-ssl, e quindi lo dobbiamo istruire modificando il file <code>/etc/apache2/ports.conf</code> aggiungendo la riga:
<pre>
<pre>
Listen 443
Listen 443
</pre>
</pre>
Come ultima cosa, importantissima, bisogna attivare il sito che abbiamo appena creato (sempre utilizzando i comodi comandi che Apache2 ci mette a disposizione). Sarà quindi sufficiente un
Come ultima cosa, importantissima, bisogna attivare il sito che abbiamo appena creato (sempre utilizzando i comodi comandi che Apache2 ci mette a disposizione). Sarà quindi sufficiente un:
<pre>
<pre>
# a2ensite default-ssl
# a2ensite default-ssl
Riga 155: Riga 155:
</pre>
</pre>
==Test della configurazione==
==Test della configurazione==
Prima di procedere è una buona idea verificare che tutto ciò che abbiamo fatto funzioni realmente. Per questo utilizziamo il metodo <tt>phpinfo</tt> di PHP5 caricandolo in una pagina di test. Partiamo col creare il file della pagina di test:
Prima di procedere è una buona idea verificare che tutto ciò che abbiamo fatto funzioni realmente. Per questo utilizziamo il metodo <code>phpinfo</code> di PHP5 caricandolo in una pagina di test. Partiamo col creare il file della pagina di test:
<pre>
<pre>
# nano -w /var/www/test.php
# nano -w /var/www/test.php
Riga 212: Riga 212:
</pre>
</pre>
==sites-available==
==sites-available==
Questa directory conterrà i files con le configurazioni di ogni sito (conosciuti come '''virtual hosts''') che vorrete servire con Apache. Uno sguardo alla directory:
Questa directory conterrà i file con le configurazioni di ogni sito (conosciuti come '''virtual hosts''') che vorrete servire con Apache. Uno sguardo alla directory:
<pre>
<pre>
ls sites-available/
ls sites-available/
Riga 218: Riga 218:
default  default-ssl
default  default-ssl
</pre>
</pre>
ci dice che l'installazione Apache2 di Debian ha due vhost disponibili: <tt>default</tt> e <tt>default-ssl</tt>. Notate che la presenza di un virtual host in questa directory non significa che questo sia attivo e visibile dagli utenti; significa solo che sarà disponibile se verrà abilitato.<br>
ci dice che l'installazione Apache2 di Debian ha due vhost disponibili: <code>default</code> e <code>default-ssl</code>. Notate che la presenza di un virtual host in questa directory non significa che questo sia attivo e visibile dagli utenti; significa solo che sarà disponibile se verrà abilitato.<br>
Tutto questo ci porta a...
Tutto questo ci porta a...
==sites-enabled==
==sites-enabled==
Questa directory contiene dei link simbolici ai files dei siti che volete rendere disponibili. Per esempio, su un web server ci possono essere diversi siti pronti per essere pubblicati (configurati nella directory <tt>sites-available</tt>), ma solo quelli linkati simbolicamente in questa directory saranno realmente visibili dagli utenti. Diamo uno sguardo alla directory:
Questa directory contiene dei link simbolici ai files dei siti che volete rendere disponibili. Per esempio, su un web server ci possono essere diversi siti pronti per essere pubblicati (configurati nella directory <code>sites-available</code>), ma solo quelli linkati simbolicamente in questa directory saranno realmente visibili dagli utenti. Diamo uno sguardo alla directory:
<pre>
<pre>
# ls -l sites-enabled
# ls -l sites-enabled
Riga 227: Riga 227:
lrwxrwxrwx 1 root root 26 Oct 28 22:38 000-default -> ../sites-available/default
lrwxrwxrwx 1 root root 26 Oct 28 22:38 000-default -> ../sites-available/default
</pre>
</pre>
Su questo web server il solo sito ad essere visibile sarà perciò quello chiamato <tt>default</tt>.
Su questo web server il solo sito ad essere visibile sarà perciò quello chiamato <code>default</code>.
===mods-available===
===mods-available===
Questa directory contiene i moduli di Apache2 pronti per essere resi disponibili.
Questa directory contiene i moduli di Apache2 pronti per essere resi disponibili.
Riga 299: Riga 299:
Descrive il tempo in secondi in cui ogni connessione persistente attiva aspetta per la prossima richiesta, prima di chiudersi definitivamente.
Descrive il tempo in secondi in cui ogni connessione persistente attiva aspetta per la prossima richiesta, prima di chiudersi definitivamente.
===prefork MPM===
===prefork MPM===
Durante l'installazione di Apache2 abbiamo optato per il pacchetto <tt>apache2-mpm-prefork</tt>, preferendolo al pacchetto <tt>apache2-mpm-worker</tt>. Vi rimando alla documentazione ufficiale di Apache2 per le differenze.<br>
Durante l'installazione di Apache2 abbiamo optato per il pacchetto <code>apache2-mpm-prefork</code>, preferendolo al pacchetto <code>apache2-mpm-worker</code>. Vi rimando alla documentazione ufficiale di Apache2 per le differenze.<br>
Questo parametro definisce il comportamento di Apache2 MPM prefork.<br>
Questo parametro definisce il comportamento di Apache2 MPM prefork.<br>
Default:
Default:
Riga 314: Riga 314:
* '''MinSpareServers''': il numero minimo di processi figlio inattivi (idle)
* '''MinSpareServers''': il numero minimo di processi figlio inattivi (idle)
* '''MaxSpareServers''': il numero massimo di processi figlio inattivi (idle)
* '''MaxSpareServers''': il numero massimo di processi figlio inattivi (idle)
* '''MaxClients''': imposta il numero massimo di richieste contemporanee gestibili da apache
* '''MaxClients''': imposta il numero massimo di richieste contemporanee gestibili da Apache
* '''MaxRequestsPerChild''': imposta quante richieste saranno gestite da un processo figlio prima di terminare. Il valore 0 indica che il processo non termina mai. Modificare questo valore può aiutare la gestione della memoria RAM del server.
* '''MaxRequestsPerChild''': imposta quante richieste saranno gestite da un processo figlio prima di terminare. Il valore 0 indica che il processo non termina mai. Modificare questo valore può aiutare la gestione della memoria RAM del server.
===ServerName===
===ServerName===
Riga 367: Riga 367:
I possibili valori sono:
I possibili valori sono:
* Off: non viene aggiunto alcun footer
* Off: non viene aggiunto alcun footer
* On: vengono aggiunte informazioni sul server al livello definito da <tt>ServerTokens</tt>
* On: vengono aggiunte informazioni sul server al livello definito da <code>ServerTokens</code>
* Email: viene aggiunto anche l'indirizzo email dell'amministratore
* Email: viene aggiunto anche l'indirizzo email dell'amministratore


6 999

contributi