Ora che abbiamo acquisito dimestichezza con i concetti di base, vediamo come possiamo sfruttare l’istanza creata su Aruba Cloud. Uno degli utilizzi più comuni su Cloud è quello di ospitare risorse web da erogare attraverso opportuni protocolli. Gli stack software probabilmente più diffusi per ottenere ciò sono quelli noti con gli acronimi LAMP (Linux, Apache, MySQL/MariaDB, PHP) e LEMP (Linux, Nginx, MySQL/MariaDB, PHP).
Entrambi si basano su Linux, un DBMS relazionale come MySQL o MariaDB, alcuni linguaggi di programmazione server (generalmente PHP) e, al centro di tutto, un server web: Apache per LAMP, Nginx per LEMP.
La macchina che andremo a configurare, per quanto sia virtualizzata, è assimilabile a tutti gli effetti ad una macchina fisica. Per questo motivo seguiremo un percorso che può essere facilmente generalizzabile.
Nginx e Apache
Nginx è un server web apprezzato per le sue prestazioni, generalmente meno avido di memoria rispetto al rivale diretto Apache, nonché significativamente più veloce dello stesso, essendo programmato seguendo un approccio a eventi. È, inoltre, in grado di gestire contenuti web statici e dinamici, fungere da proxy, da cache HTTP nonché implementare funzionalità di load balancing.
Apache è sufficiente per gli utilizzi più comuni essendo meno complesso da implementare e con una solida tradizione alle spalle. In questa lezione presenteremo un rapido excursus sull’installazione di entrambi gli stack LEMP e LAMP, rimandando alla lettura delle guide di HTML.it dedicate ad Apache e Nginx per ulteriori approfondimenti.
Installazione di Apache o Nginx
Dopo esserci collegati alla macchina sfruttando la linea di comando (come descritto in una lezione precedente) ed avere aggiornato il sistema operativo (a scopo esemplificativo adoperiamo Ubuntu 18.04), dovremo procedere in modo diverse a seconda della scelta di operare con LEMP o LAMP.
LEMP
Se desideriamo appoggiarci a uno stack LEMP procediamo a installare Nginx con il comando seguente:
apt-get install nginx
Sarà poi necessario specificare le configurazioni opportune. Il file di configurazione principale è /etc/nginx/nginx.conf ma è preferibile operare, quando possibile, su file esterni richiamati all’interno di esso attraverso il comando include
. Tipicamente si opera nella directory /etc/nginx/sites-enabled/. Possiamo reperire un esempio di file di configurazione, da usare come punto di partenza, sbirciando nella directory /etc/nginx/sites-available/.
Creato il file necessario, inseriamo al suo interno, alla voce index
, come primo argomento, index.php. Alla voce server_name
, dovremo invece specificare il nome del server o l’indirizzo IP della macchina su cui faremo operare il servizio. Infine, alla voce location
, assicuriamoci che il blocco ~ \.php$
appaia grossomodo come segue:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
Verifichiamo che nel file di configurazione non siano presenti errori eseguendo da CLI il comando seguente:
nginx -t
Se tutto è stato effettuato in modo corretto, otterremo un risultato simile al seguente:
LAMP
Se invece optiamo per uno stack LAMP dovremo installare Apache. Per farlo, adoperando il comando:
apt-get install apache2
Fatto ciò, modifichiamo il file /etc/apache2/mods-enabled/dir.conf, aggiungendo alla voce index la voce relativa all’eventuale indice php:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Installazione di MySQL
Una volta installato il web server, scegliamo di optare per MySQL (sebbene la scelta di MariaDB non cambi la procedura di installazione in maniera significativa), ed installiamolo attraverso l’istruzione seguente:
apt-get install mysql-server
Dovremo quindi verificare che il demone sia operativo. Per farlo, eseguiamo il comando seguente:
mysqld --version
Se tutto è andato a buon fine sarà visualizzato l’output seguente:
A questo punto potremo migliorare la sicurezza del nostro database con il comando:
mysql_secure_installation
Scegliamo una password e fidiamoci delle scelte standard proposte dallo script che abbiamo appena lanciato qualora non sussista una ragione specifica che ci spinga a muoverci diversamente.
Installazione di PHP
L’installazione di PHP richiede di procedere diversamente a seconda del web server scelto (e quindi del rispettivo stack LAMP o LEMP).
LEMP
Se vogliamo adoperare PHP in congiunzione con Nginx in uno stack LEMP, utilizziamo il seguente comando:
apt-get install php-fpm php-mysql
A questo punto è consigliabile riavviare tutti i demoni per essere certi che le configurazioni aggiornate siano caricate.
LAMP
Se vogliamo utilizzare php insieme ad Apache, quindi nello stack LAMP, lanciamo il comando seguente:
apt-get install php libapache2-mod-php php-mysql
Anche in questo caso è consigliabile riavviare tutti i demoni per assicurarsi che si operi secondo le attese.