Apache, php e MySQL su Windows 10 Subsystem for Linux: è possibile?

Tra le domande più frequenti di chi scopre la possibilità di utilizzare un intero sottosistema linux su una macchina Windows c’è di certo la seguente:

“Si, carino, ma cosa ci faccio?”

Negli articoli precedenti abbiamo visto come è possibile utilizzare alcuni tool di cui un amministratore di sistema abituato a lavorare con linux non riuscirebbe a fare a meno, e fino ad ora era costretto ad installare emulatori o software di terze parti per poter sopperire alla mancanza della sua command line preferita. Oggi vediamo come Windows Subsystem for Linux non è solo editing di testo, e scopriamo come poter installare uno dei webserver più utilizzati al mondo. In particolare installeremo un webserver Apache con supporto php e MariaDB (il nuovo MySql), una soluzione completa per trasformare la nostra macchina in un webserver che non ha nulla da invidiare a quelli noleggiati in giro per il web.

L’installazione richiede un minimo di conoscenza dei servizi di cui stiamo parlando ma è tecnicamente molto semplice; per prima cosa è necessario aver installato Windows 10 Bash. Se la vostra macchina non soddisfa questo requisito potete correre ai ripari seguendo la guida riportata in questo articolo (https://www.ictpower.it/guide/installazione-di-windows-10-subsystem-for-linux-windows-10-bash.htm).

Il tool che ci viene incontro in questo caso è apt-get, il tool predefinito di Ubuntu per la gestione dei pacchetti di installazione, che permette di installare i servizi occupandosi per noi di scaricare e configurare ogni eventuale prerequisito.

La sintassi per installare un pacchetto è molto semplice:

apt-get install nomepacchetto

Per installare più pacchetti è sufficiente indicare i pacchetti separandoli con uno spazio

apt-get install nomepacchetto1 nomepacchetto2 nomepacchetto3

Iniziaremo proprio con guadagnare i privilegi di root (amministratori del sistema linux, con la possibilità di installare pacchetti), e procederemo all’installazione del db

sudo bash

Questo comando esegue una bash lanciandola con privilegi amministrativi (sudo = super user do). Verrà richiesto di immettere la password scelta in fase di installazione della bash. Riconosceremo di essere root perché il prompt terminerà con il carattere #, diversamente dal prompt utente che termina con il $.

Per esserne certi possiamo eseguire il comando whoami (chi sono io) per chiedere al sistema con che utente siamo loggati.

Per installare MariaDB utilizzeremo quindi

apt-get install mariadb-server mariadb-client

Il wizard chiederà di assegnare una password ed inizierà ad installare tutti i requisiti necessari.

Successivamente installerà ed avvierà il servizio MariaDB. Non preoccupatevi di eventuali errori che vedrete scorrere sullo schermo durante l’installazione, il servizio verrà installato correttamente.

Proviamo ad accedere al motore database con il comando

mysql –p

utilizzando la password fornita durante il wizard, e proviamo a creare un database di nome test.

Ora è il momento di installare il webserver Apache2; nulla di più semplice eseguendo il comando:

apt-get -y install apache2

Anche qui ignoriamo qualche messaggio di errore ed attendiamo meno di un minuto per l’installazione. Al termine possiamo aprire un browser e provare a navigare sull’indirizzo 127.0.0.1 o localhost. Quello che vedremo ci sorprenderà, ma in effetti abbiamo un vero e proprio webserver Ubuntu funzionante!

Anche navigando da LAN sull’indirizzo IP della macchina vedremo comparire la pagina del webserver, ed ovviamente configurando il nostro router saremo in grado di pubblicare questo webserver su internet. L’operazione è sconsigliata poiché essendo una versione beta potremmo rilevare dei problemi relativi alla sicurezza, ma è assolutamente possibile.

Non ci rimane ora che installare il supporto php, anche qui una sola riga di comando:

apt-get -y install php5 libapache2-mod-php5

Apache verrà automaticamente riavviato con il supporto php attivo. Facciamo subito una prova per assicurarcene. Creiamo un file php per eseguire la funziona phpinfo, che ci restituirà dettagli sulla versione di php in uso.

nano /var/www/html/ictpower.php

inseriamo queste righe di codice php e salviamo con CTRL+x, confermando con y

<?php
phpinfo();
?>

Navighiamo sulla pagina http://127.0.0.1/ictpower.php ed avremo la conferma che il nostro Apache ha pieno supporto a php:

Ora il nostro webserver è pronto, ma se vogliamo utilizzarlo per qualche sviluppo di test abbiamo la necessità di aggiungere qualche libreria di supporto al php, compresi i connettori al database MariaDB che abbiamo installato in precedenza. Niente paura, apt-get farà tutto il lavoro per noi. Aggiungiamo un –y al comando per dare conferma automatica all’installazione di tutti i pacchetti

apt-get -y install php5-mysqlnd php5-gd php5-xmlrpc php5-intl php-pear php5-imagick php5-curl php5-mcrypt php5-ming php5-snmp php5-sqlite php5-imap php5-tidy php5-xsl php5-ps php5-pspell php5-recode php5-memcache

Dopo l’installazione è necessario riavviare apache con il comando

service apache2 restart

Possiamo quindi verificare sulla pagina phpinfo l’aggiunta di tutti i supporti:

A questo punto possiamo preparare il nostro sito web, e dire a tutti che questo gira su un webserver apache Linux su Windows 10. Magari non vi crederanno, ma sarà solo questione di tempo. J