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

nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
=Versioni compatibili=
{{Versioni compatibili|Debian Lenny 5.0<br/>Debian Squeeze<br/>Debian Sid|}}
* Debian Lenny 5.0
=Introduzione=
=Introduzione=
'''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.
Riga 9: Riga 8:
Installare il web server Apache2 su Debian è un'operazione molto semplice:
Installare il web server Apache2 su Debian è un'operazione molto semplice:
<pre>
<pre>
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
Riga 18: Riga 17:
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
Riga 26: Riga 25:
Quindi riavviate Apache2 per fargli digerire le modifiche:
Quindi riavviate Apache2 per fargli digerire le modifiche:
<pre>
<pre>
apache2ctl graceful
# apache2ctl graceful
</pre>
</pre>
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!
Riga 35: Riga 34:
Creiamo inannzitutto una directory dove archiviare i nostri certificati:
Creiamo inannzitutto una directory dove archiviare i nostri certificati:
<pre>
<pre>
mkdir /etc/apache2/ssl
# mkdir /etc/apache2/ssl
</pre>
</pre>
Quindi creiamo i nostri certificati:
Quindi creiamo i nostri certificati:
<pre>
<pre>
openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
# openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
</pre>
</pre>
L'output iniziale del comando sarà:
L'output iniziale del comando sarà:
Riga 70: Riga 69:
Adesso che abbiamo i certificati piazzati al loro posto non dobbiamo far altro che abilitare Apache mod_ssl:
Adesso che abbiamo i certificati piazzati al loro posto non dobbiamo far altro che abilitare Apache mod_ssl:
<pre>
<pre>
a2enmod ssl
# a2enmod ssl
</pre>
</pre>
==Configurazione dei Virtual Host==
==Configurazione dei Virtual Host==
Iniziamo con il creare un file di testo che specifichi il nostro Virtual Host SSL:
Iniziamo con il creare un file di testo che specifichi il nostro Virtual Host SSL:
<pre>
<pre>
nano /etc/apache2/sites-available/default-ssl
# nano /etc/apache2/sites-available/default-ssl
</pre>
</pre>
e configuriamolo come segue:
e configuriamolo come segue:
Riga 143: Riga 142:
Un riavvio di Apache2 caricherà la nuova configurazione:
Un riavvio di Apache2 caricherà la nuova configurazione:
<pre>
<pre>
/etc/init.d/apache2 force-reload
# /etc/init.d/apache2 force-reload
</pre>
</pre>


Riga 149: Riga 148:
Per avere il supporto a PHP5 è sufficiente installare il linguaggio di scripting e il relativo modulo di supporto ad Apache2:
Per avere il supporto a PHP5 è sufficiente installare il linguaggio di scripting e il relativo modulo di supporto ad Apache2:
<pre>
<pre>
aptitude install php5 libapache2-mod-php5
# aptitude install php5 libapache2-mod-php5
</pre>
</pre>
A questo punto un riavvio di Apache è sufficiente:
A questo punto un riavvio di Apache è sufficiente:
<pre>
<pre>
/etc/init.d/apache2 reload
# /etc/init.d/apache2 reload
</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 <tt>phpinfo</tt> 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
</pre>
</pre>
Quindi riempiamolo in questo modo:
Quindi riempiamolo in questo modo:
Riga 177: Riga 176:
Tramite le funzionalità di ricerca di aptitude diamo uno sguardo ai moduli disponibili per PHP5:
Tramite le funzionalità di ricerca di aptitude diamo uno sguardo ai moduli disponibili per PHP5:
<pre>
<pre>
aptitude search php5
# aptitude search php5
</pre>
</pre>
Scegliete '''solo''' quelli che vi servono e installateli nel solito modo:
Scegliete '''solo''' quelli che vi servono e installateli nel solito modo:
<pre>
<pre>
aptitude install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt
# aptitude install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt
php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy
php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy
php5-xmlrpc php5-xsl php5-json
php5-xmlrpc php5-xsl php5-json
Riga 188: Riga 187:
L'installazione del RDBM MySQL è semplice:
L'installazione del RDBM MySQL è semplice:
<pre>
<pre>
aptitude install mysql-server mysql-client
# aptitude install mysql-server mysql-client
</pre>
</pre>
Durante l'installazione vi verrà chiesta la password di amministratore di MySQL (che è chiamato '''root''' ma è diverso dall'utente '''root''' del server Debian):
Durante l'installazione vi verrà chiesta la password di amministratore di MySQL (che è chiamato '''root''' ma è diverso dall'utente '''root''' del server Debian):
Riga 199: Riga 198:
Per amministrare i nostri database può essere comoda un'interfaccia grafica raggiungibile da browser. A questo scopo installiamo '''phpMyAdmin''':
Per amministrare i nostri database può essere comoda un'interfaccia grafica raggiungibile da browser. A questo scopo installiamo '''phpMyAdmin''':
<pre>
<pre>
aptitude install phpmyadmin
# aptitude install phpmyadmin
</pre>
</pre>
Durante l'installazione vi verrà chiesto di indicare il web server in esecuzione sulla vostra machina. Indicate apache2:
Durante l'installazione vi verrà chiesto di indicare il web server in esecuzione sulla vostra machina. Indicate apache2:
Riga 209: Riga 208:
Assumendo di aver utilizzato aptitude o apt-get per installare Apache2, spostiamoci nella sua directory di configurazione per dare un occhio a come è strutturata:
Assumendo di aver utilizzato aptitude o apt-get per installare Apache2, spostiamoci nella sua directory di configurazione per dare un occhio a come è strutturata:
<pre>
<pre>
cd /etc/apache2
# cd /etc/apache2
ls
# ls
</pre>
</pre>
==sites-available==
==sites-available==
Riga 224: Riga 223:
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 <tt>sites-available</tt>), 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
...
...
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
Riga 238: Riga 237:
Questo comando cancella il link simbolico di un sito abilitato. Ad esempio il comando:
Questo comando cancella il link simbolico di un sito abilitato. Ad esempio il comando:
<pre>
<pre>
a2dissite default
# a2dissite default
</pre>
</pre>
rende indisponibile il sito di default di Apache.
rende indisponibile il sito di default di Apache.
Riga 244: Riga 243:
Questo comando serve invece a abilitare un virtual host:
Questo comando serve invece a abilitare un virtual host:
<pre>
<pre>
a2ensite default
# a2ensite default
</pre>
</pre>
rimette le cose a posto, ripristinando il sito di default precedentemente disabilitato.
rimette le cose a posto, ripristinando il sito di default precedentemente disabilitato.