Mai avuto necessità o curiosità di installare / configurare un web server linux?
Ci sono tanti modi di mettere online un sito web, possiamo utilizzare uno dei tanti piani di hosting messi a disposizioni da uno dei tantissimi provider, oppure possiamo aver bisogno di una soluzione più personalizzabile, più potente o magari necessitiamo di funzioni che il semplice piano di hosting, con tutte le sue “limitazioni” non ci permette di implementare. In questa breve e semplice guida vedremo come installare e configurare un server LAMP (Linux-Apache-Mysql-PHP) sulla nostra macchina linux o il nostro ipotetico server remoto (VPS o dedicato che sia).
Vedremo passo passo come installare i componenti e i servizi che permettono ad una macchina connessa in rete di diventare un vero e proprio erogatore di servizi online. La seguente guida può essere utile per tutti coloro che per la prima volta passano da un piano hosting (dalla pappa pronta insomma), ad una soluzione molto più personale e per certi versi affidabili. Non vedremo come trasformare il nostro computer di casa in un server (ci sarebbero troppe questioni su DNS, NameServer e IP statici da analizzare, cosa che farò in un altra guida).
Passo 1: Connessione alla macchina remota
Passaggio fondamentale è collegarsi tramite SSH (secure shell), alla macchina remota (VPS o server dedicato) che dobbiamo andare a configurare, volendo possiamo anche creare un web server locale (e questa cosa possiamo farla anche con il nostro computer di casa o dell’ufficio, con un raspberry o una qualsiasi board computer), ma in questo caso non sarà necessario effettuare nessun collegamento ssh bensì semplicemente basterà aprire un terminale.
Apriamo un qualsiasi terminale UNIX e digitiamo:
dove andremo a sostituire con ip_macchina l’indirizzo IP della macchina alla quale vogliamo collegarci.
Se la connessione andrà a buon fine ci verrà chiesto di memorizzare una chiave e di inserire una password (quella dell’utente root della macchina remota alla quale ci stiamo connettendo), ed una volta fatto ciò ci si aprirà all’interno del terminale la shell della macchina remota, proprio come se stessimo eseguendo un terminale su quella macchina.
Se avete un sistema Windows e volete collegarvi tramite SSH potete utilizzare il programma Putty.
Passaggio 2: Installazione di Apache
Andiamo ora ad installare il cuore del nostro web server, Apache2, che sarà la piattaforma per il nostro web server. Ci sono anche altri programmi come Apache, ad esempio ngix, ed in seguito vedremo come e quando utilizzarne uno o l’altro.
Da terminale digitiamo:
1
| sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert |
sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
Ad installazione conclusa dobbiamo ora attivare Apache2 (che è un servizio), per attivarlo/disattivarlo/riavviarlo basterà digitare da terminale
4
5
6
7
| sudo service apache2 start //per avviarlo
sudo service apache2 stop //per fermarlo
sudo service apache2 reload //per applicare modifiche alle impostazioni
sudo service apache2 restart //per riavviarlo |
sudo service apache2 start //per avviarlo
sudo service apache2 stop //per fermarlo
sudo service apache2 reload //per applicare modifiche alle impostazioni
sudo service apache2 restart //per riavviarlo
Ora navigando verso l’indirizzo IP della nostra macchina, o andando su localhost (se siamo in locale digitate semplicemente localhost nell’indirizzo del browser oppure il vostro IP locale 127.0.0.1), dovremmo vedere una schermata del genere:

Se ciò accade significa che abbiamo fatto tutto correttamente e che Apache è stato correttamente installato. A questo punto possiamo già mettere online un sito web in HTML, senza utilizzare PHP o un database, ma raramente i siti web moderni vengono realizzati senza questi due elementi.
Passaggio 3: Installazione di PHP
Installando questo applicativo andremo a rendere compatibile il nostro web server con tutto ciò che utilizza PHP per funzionare.
Da terminale digitiamo:
sudo apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-idn php-pear php5-recode php5-snmp php5-sqlite php5-xmlrpc php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell
Php però non è solo questo, ci sono moltissimi altri pacchetti che contengono ulteriori altre funzioni di compressione o interpretazione, spesso capita che installando sul nostro web server un servizio che utilizza php, come un qualsiasi CMS, ci venga chiesto di installare un determinato componente php, in questo caso sarà molto semplice “individuare” il nome del componente tra quelli installabili sul nostro sistema, digitiamo da terminale
apt-cache search php5
Questo comando mostra tutti i pacchetti nominati php5, da questi possiamo individuare ciò che ci serve e installarlo con il classico apt-get 😉
Passaggio 3: installazione di mysql
Da terminale digitiamo
sudo apt-get install mysql-server mysql-client
ATTENZIONE: L’installazione di mysql necessita di maggiori attenzioni rispetto a quelle fatte fino ad ora, ci sarà infatti chiesta una password dell’utente “root”, questa password e questo utente non hanno nulla a che vedere con il vostro sistema o con l’utente root con il quale siete autenticati, corrisponde bensì all’utente con diritti massimi su tutti i database che andrete a creare, è buona norma inserire una password complessa e ben diversa dal quella del superuser di sistema. E’ inoltre buona norma non utilizzare mai l’utente root per la gestione tramite codice di un database, è consigliabile creare un utente singolo con password propria e privilegi su un singolo database per ogni progetto che utilizza mysql che andremo a realizzare od implementare, ma a questa cosa sarà dedicata una guida intera 😀
Così come per apache, anche mysql è un servizio, da terminale digitiamo quindi
sudo service mysql start //per avviarlo
sudo service mysql stop //per bloccarlo
Una volta fatto ciò il nostro sistema LAMP è pronto!
In una prossima guida vedremo come andare a configurare in modo personale PHP, Come creare Host virtuali (più siti su un solo server) e come andare ad aumentare la sicurezza della nostra installazione di mysql. Per ora andiamo a capire come modificare il “nostro” sito web attuale, ossia la pagina di default di apache che abbiamo visto in precedenza.
Basterà semplicemente andare a modificare o sostituire o cancellare il file index (index.html) nella cartella di dafault di Apache2 situata in /var/www/html
Una volta giunti in questa cartella ci comporteremo come se fossimo su un normalissimo hosting!
Attenzione: Bisogna prestare particolare attenzione ai permessi che vengono utilizzati sui file presenti all’interno della cartella pubblica HTML (quella di cui parlavamo sopra), possono infatti verificarsi errori 503 o peggio, possiamo dare accesso non volendo alla modifica di file ed esecuzione di script a personaggi che non dovrebbero. Per stare tranquilli possiamo utilizzare un gruppo utente con i permessi “perfetti” o quasi per il web, il gruppo in questione è www-data, con il relativo utente www-data (valido per debian e derivate).
Digitiamo da terminale
sudo chown -R www-data:www-data /var/www/html
In questo modo applicheremo questi “permessi” (o meglio ownershp) all’intera cartella pubblica html, è importante ricordare che ogni qualvolta creeremo una cartella all’interno di quella pubblica “html”, con un utente diverso da www-data, dovremmo riapplicare nuovamente l’ownership onde evitare problemi o errori.