Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5
Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5
Introduzione
LAMP è un acronimo che indica un ambiente server in cui siano installati Linux, Apache, MySQL e PHP. In questa guida vedremo come installare un server Apache2 su Debian, come configurare il modulo SSL e come fornire supporto per il linguaggio di scripting PHP5 e i database basati su MySQL.
In tutta la guida assumeremo che il nome del server Debian sia demo e il suo indirizzo IP sia 123.45.6.7.890. Questi valori vanno ovviamente sostituiti con quelli del vostro ambiente di lavoro.
Installazione di Apache2
Installare il web server Apache2 su Debian è un'operazione molto semplice:
aptitude install apache2-mpm-prefork apache2-utils libexpat1
Probabilmente noterete, all'avvio del web server, il messaggio di avvertimento
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Per eliminarlo è sufficiente aprire il file di configurazione di Apache2
nano /etc/apache2/apache2.conf
e aggiungere la direttiva
ServerName demo
Quindi riavviate Apache2 per fargli digerire le modifiche:
apache2ctl graceful
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
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.
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
Creiamo inannzitutto una directory dove archiviare i nostri certificati:
mkdir /etc/apache2/ssl
Quindi creiamo i nostri certificati:
openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
L'output iniziale del comando sarà:
Generating a 1024 bit RSA private key ...........++++++ ...........++++++ writing new private key to '/etc/apache2/ssl/apache.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. -----
e poi ci verrà posta una serie di domande:
Country Name (2 letter code) [AU]: IT State or Province Name (full name) [Some-State]: Lodi Locality Name (eg, city) []: S. Angelo Lodigiano Organization Name (eg, company) [Internet Widgits Pty Ltd]: Compagnia di Test Organizational Unit Name (eg, section) []: Divisione IT Common Name (eg, YOUR name) []: demo.dominio.local Email Address []: webmaster@dominio.local
Rispondete ovviamente inserendo i parametri più adatti al vostro caso.
Adesso che abbiamo i certificati piazzati al loro posto non dobbiamo far altro che abilitare Apache mod_ssl:
a2enmod ssl
Configurazione dei Virtual Host
Iniziamo con l'abilitare la porta 443 del nostro default host:
nano /etc/apache2/sites-available/default
All'inizio del file troveremo le voci:
NameVirtualHost * <VirtualHost *> ...
Modifichiamole in questo modo:
NameVirtualHost *:80 NameVirtualHost *:443 <VirtualHost *:80> ... ... </VirtualHost> <VirtualHost *:443> ... ... </VirtualHost>
e aggiungiamo infine le seguenti due linee:
SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem
Un riavvio di Apache2 caricherà la nuova configurazione:
/etc/init.d/apache2 force-reload
Installazione di PHP5
Per avere il supporto a PHP5 è sufficiente installare il linguaggio di scripting e il relativo modulo di supporto ad Apache2:
aptitude install php5 libapache2-mod-php5
A questo punto un riavvio di Apache è sufficiente:
/etc/init.d/apache2 reload
Test della configurazione
Prima di procedere è una buona idea verificare che tutto ciò che abbiamo fatto funzioni realmente. Per questo utilizziamo il metodo phpinfo di PHP5 caricandolo in una pagina di test. Partiamo col creare il file della pagina di test:
nano -w /var/www/test.php
Quindi riempiamolo in questo modo:
<html> <head> <title> PHP Test Script </title> </head> <body> <?php phpinfo( ); ?> </body> </html>
salviamo il file e richiamiamolo nel nostro browser: http://123.45.67.890/test.php. Se tutto è andato per il verso giusto vi troverete davanti a una schermata di riepilogo delle funzionalità abilitate di PHP5.
Moduli aggiuntivi
Tramite le funzionalità di ricerca di aptitude diamo uno sguardo ai moduli disponibili per PHP5:
aptitude search php5
Scegliete solo quelli che vi servono e installateli nel solito modo:
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-xmlrpc php5-xsl php5-json
Installazione di MySQL
L'installazione del RDBM MySQL è semplice:
aptitude install mysql-server mysql-client
Durante l'installazione vi verrà chiesta la password di amministratore di MySQL (che è chiamato root ma è diverso dall'utente root del server Debian):
New password for the MySQL "root" user: <-- LAMIAPASSWORD Repeat password for the MySQL "root" user: <-- LAMIAPASSWORD <pre> La password che sceglierete sarà valida sia per l'utente MySQL root@localhost sia per l'utente root@demo. ===L'interfaccia phpMyAdmin=== Per amministrare i nostri database può essere comoda un'interfaccia grafica raggiungibile da browser. A questo scopo installiamo '''phpMyAdmin''': <pre> aptitude install phpmyadmin
Durante l'installazione vi verrà chiesto di indicare il web server in esecuzione sulla vostra machina. Indicate apache2:
Web server to reconfigure automatically: <-- apache2
A questo punto lanciate il browser su http://123.45.67.890/phpmyadmin e fate login con le credenziali di root di MySQL inserite poco fa.