Installare e configurare un server LAMP su Ubuntu 14.04 – ed. server 64bit

Presupposto di partenza:

  • installazione di Ubuntu Server 14.04.2 funzionante, installazione pulita + server OpenSSH (installato da installer)
    il server SSH non e’ necessario, a me serviva perche’ il server non ha un monitor ne’ una tastiera attaccati, quindi una volta installato il SO e messo in posizione non avevo altro modo di arrivarci se non via SSH.
  • do’ per scontata una certa conoscenza basilare del sistema operativo, poiche’ se volete iniziare a giocare ai giochi “dei grandi” bisogna che conosciate le regole.
    Quindi non sara’ spiegato cosa sono i permessi, cos’e’ sudo, fqdn, la differenza tra host ed hostname e come si configura l’interfaccia di rete; se tra questi che ho citato c’e’ anche una sola cosa che non conoscete allora e’ meglio che vi fermate qui e colmate eventuali lacune prima di proseguire perche’ poi quando (ho scritto quando e non se) le cose non funzioneranno non avrete le conoscenze e/o le informazioni per capire dove sta il problema e vi troverete con un server che potrebbe tranquillamente fare da soprammobile.
    O, peggio, un server coi buchi che fara’ la felicita’ di spammer e cracker di mezzo mondo oltre a finire in tute le fo$$ute blacklist dell’universo conosciuto.

L’aggiornamento prima dell’installazione

Abbiamo il nostro bel server appena installato, le prime cose da fare sono:

  • configurazione della rete: assegnare un IP statico in /etc/network/interfaces
  • cambiare hostname in modo da avere un fqdn completo, in /etc/hostname
  • definire correttamente l’host, in /etc/hosts

E con questo abbiamo un server che puo’ stare nella rete.
Ora procediamo ad aggiornarlo con tutti i pacchetti all’ultima versione, cosi’ da tappare tutte le falle note quantomeno.

$sudo apt-get update && sudo apt-get dist-upgrade

Macina macina e alla fine ci sono buone probabilita’ di dover riavviare, specie se l’installazione che avete usato e’ vecchiotta.

L’installazione LAMP

Che non significa che si installa “in un lampo”, ma e’ un acronimo che sta per Linux-Apache-MySql-Php.

Se avete installato Ubuntu server da zero, durante l’installazione il sistema potrebbe avervi mostrato una schermata nella quale vi chiedeva di selezionare una o piu’ funzioni del server.
Tra queste c’erano OpenSSH, LAMP, MAIL, DNS, e molte altre.
A questo punto io semplicemente seleziono OpenSSH server e basta, in modo che l’installazione mi predisponga il server pulito e senza fronzoli accessori, ma gia’ pronto per una connessione SSH standard.
La prima cosa che poi faccio appena terminata l’installazione e’ modificare il file di configurazione del servizio SSH per adattarlo alle mie esigenze. Ho le mie fisse, chiamatele fissazioni se volete.
Se lasciate che sia l’installer a scaricare ed installare i pacchetti necessari ai servizi che selezionate in quella famosa schermata accennata prima, vi troverete con i servizi presenti e funzionanti ma la configurazione non sara’ di certo quella che vi serve.

Se invece quella “famosa” schermata non l’avete vista – o non ci avete fatto caso – provvederemo ad installare tasksel come prima cosa.

$sudo apt-get install tasksel

Facile, semplice, veloce.
Poi lasciamo al buon tasksel il compito di recuperare ed installare tutti i pacchetti necessari per avere un server LAMP funzionante: questi sono principalmente apache2, MySql, PHP, e quelli necessari a soddisfare le varie dipendenze.

$sudo apt-get install lamp-server^

Notare il carattere ^ alla fine: indica che e’ un compito da passare a tasksel.
Vengono selezionati un po’ di pacchetti che devono essere installati, quando viene chiesto se proseguire ovviamente darete il vostro assenso.

La prima interazione con l’installazione l’abbiamo quando ci viene chiesta la password per l’utente root di MySql, NON E’ LA PASSWORD DI ROOT DEL SERVER, e sarebbe bello che fosse diversa da quella di root del server. Viene chiesta 2 volte per sicurezza.

Affrontiamo un secondo il discorso password con una precisazione: se un estraneo e’ fisicamente sulla macchina, non c’e’ password che tenga; ci sono millemila modi di scavalcarla.
Al di la’ delle considerazioni sulla robustezza di una password, le dovrete scegliere tenendo bene a mente che una volta che il server sia stato “bucato”, e’ compromesso da capo a piedi. Non c’e’ nulla da recuperare o verificare, c’e’ solo da spianare e rifare.

Il sistema macina ancora, ed avvia i servizi di MySql ed apache, poi fa ancora un po’ di #$@£&!@$* e riavvia apache un altro paio di volte (di solito).
A questo punto apache e’ installato, MySql anche e PHP pure; ne avremo conferma aprendo un browser e puntandolo all’indirizzo IP del nostro server: si aprira’ la pagina base di Apache con alcune indicazioni sulla configurazione.

Questo ci dice che il server web risponde correttamente, ma la configurazione e’ ben lungi dall’essere terminata; seppure non sia complessa, c’e’ ancora parecchia strada da fare prima di poter visualizzare qualcosa, a meno che non abbiate solo una manciata di pagine statiche e/o qualche immagine.
In questo caso potete buttare tutto dentro a /var/www/html perche’ e’ li’ che di default apache va a cercare.

Per sfruttare al meglio apache installiamo alcuni pacchetti aggiuntivi

$sudo apt-get install apache2-utils

e abilitiamo la mod-rewrite, che e’ necessaria per un sacco di cose tra cui il 99% dei CMS, in pratica e’ una scelta obbligata.

$sudo a2enmod rewrite
$sudo service apache2 restart

Da qui in poi si apre un mondo, a seconda di come vogliamo organizzarci e’ possibile smaneggiare le configurazioni in mille modi diversi. Spesso configurazioni diverse portano allo stesso risultato ma lasciano all’amministratore piu’ o meno controllo e di conseguenza anche il debug successivo sara’ differente; ecco perche’ prima ho specificato che le conoscenze di base del sistema operativo sono necessarie.

Seguira’ un seconda parte in cui inizieremo a configurare un VirtualHost ed a piazzarci un minimo di contenuto, usando un CMS quale WordPress.