Server LAMP, installiamolo in locale su Ubuntu Linux

LAMP Infograph

Quest’oggi vi parlerò sul come installare un server LAMP sul proprio computer per lavorare in locale ai personali codici, senza avvalersi di servizi esterni o di host. Ciò vi permetterà di usufruire in locale di piattaforme come wordpress e modificarle a piacimento, come ad esempio Alessandro ci spiega nel proprio articolo, riferendosi al famoso framework per blogger.
Ma perché e come farlo? Cercherò di spiegarvelo pian piano.


 

Le fondamenta: Cosa è un Server LAMP?

È uno stack software, ossia una piattaforma (pila) composta da più elementi. Quali?
L.A.M.P. sta per Linux, Apache, MySql(Mariadb) e PHP.

  • Linux: indica la famiglia di Sistemi Operativi utilizzati per il nostro server, l’elemento che si colloca alla base della pila di software e senza il quale non è possibile eseguire quelli successivi.
  • Apache è invece il programma server, ossia quello che gestisce il protocollo HTTP/HTTPS e di conseguenza lo scambio di dati in rete, elemento necessario al pari del sistema operativo.
  • MySql o Mariadb sono le due opzioni di database che è possibile scegliere e con le quali organizzare i dati che il nostro server deve gestire. È quindi una componente importante ma non fondamentale per il nostro progetto, poiché si potrebbe evitare l’uso di un database, ma la stragrande parte dei framework è studiata per sfruttare questi versatili strumenti.
  • PHP è il linguaggio di programmazione adoperato dal nostro server. Ovviamente è possibile utilizzarne anche altri, come il Python ed il Perl. Nonostante le controversie sul PHP e le sue caratteristiche, resta il linguaggio più utilizzato in ambiente Server, ed inoltre vi sono numerosi framework scritti in PHP. WordPress, ad esempio. Si, un nome a caso 😛 (Ciò non vuol dire che non è possibile usare più linguaggi sullo stesso server!)

Le piattaforme LAMP non sono le uniche tipologie di server esistenti, ma esistono varianti anche per Windows e Mac OS, tuttavia non sono argomento di questo articolo, poiché i sistemi operativi più gettonati in ambito server restano quelli Unix/BSD.

Perché realizzare un Server LAMP locale?

Quali sono i reali vantaggi nel rendere il nostro computer su cui è installata una distro Linux, un server locale?

Per un programmatore sicuramente non sono pochi: il poter eseguire il proprio codice sulla macchina su cui lo si scrive è decisamente più comodo che il dover inviare i file ad un host internet.
E badate, ciò implica un considerevole risparmio di tempo.
Inoltre consente di gestire con maggior semplicità i vari file e sfruttare diversi framework per integrarli, oltre che utilizzare i propri programmi di editing per lavorare e testare il codice.

Uno studente potrebbe trarne giovamento migliorando le proprie conoscenze in ambito informatico, toccando con mano il motore che fa funzionare la rete e comprenderne la sua struttura, cominciando a giochicchiare con un proprio server.

Tutto ciò mira alla creazione di un ambiente di sviluppo realizzato su misura di colui che si appresta alla creazione di un progetto, flessibile e modulare ed adatto alle esigenze dell’essere umano che si appresta alla programmazione.

Ma perché dico un web server locale?
Perché le configurazioni trattate sono pensate prevalentemente per fornire una piattaforma di programmazione e non altro, per tanto il nostro server non sarà visibile all’interno del World Wide Web, ma solo per la nostra rete locale.

Perché ubuntu?

Probabilmente di risposte potrebbero essercene a vagonate- si, vagonate- con pro e contro a cominciare dall’ambiente desktop a finire all’init. Tuttavia vi sono dei dati di fatto importanti e dei quali bisogna tenere conto:

  • Ubuntu e Linux Mint sono due delle distro più utilizzate in ambito Unix, senza contare le derivate delle derivate.
  • Linux Mint è una distro derivata da Ubuntu, quindi ciò che vale per il sistema di chanonical, vale anche per l’altro.
  • Ubuntu a sua volta deriva da Debian, storica distribuzione apprezzata per la sua solidità, e con la quale vi è un alta percentuale di compatibilità. Ciò che imparate su Ubuntu, potreste ritrovarlo in Debian.
  • Ubuntu ha un’ottima documentazione ed un’attiva community che possono favorire la risoluzione dei problemi di varia natura in cui dovreste incappare.
  • Ubuntu ha una specifica versione Server, tuttavia il mio scopo è presentare un metodo con cui costruire un ambiente di lavoro per un programmatore e non per far funzionare un vero e proprio server web; queste due versioni fanno parte della stessa famiglia e per tanto gran parte dei percorsi e comandi saranno identici.

Uno dei primi scogli che affronto in questa guida, deriva proprio da questa scelta. Ubuntu 14.04 LTS utilizza un sistema di init chiamato upstart, mentre Ubuntu 15.10 systemd.
Questo significa che alcuni percorsi ed alcuni comandi saranno differenti a seconda della versione adoperata. Ho scelto di includere nella guida la versione LTS poiché il suo supporto non è ancora terminato ed è la solida base di molte altre distro, quindi vale la pena presentare un metodo valido anche per essa.
Nell’articolo dividerò in maniera esplicita i comandi ed i percorsi differenti per le due versioni di Ubuntu, in modo da evitare confusione.

Dunque, siamo pronti per iniziare questo viaggio nel mondo dell’informatica?
Ovviamente no! Ho dimenticato di dirvi una cosa molto, molto importante: munitevi di pazienza e caffè 😉

Installare Apache

Abbiamo visto che la stragrande maggioranza dei web server utilizza Apache ed il protocollo HTTP/HTTPS, per tanto il primo passo per costruire il nostro ambiente di lavoro per applicativi WEB, sarà appunto installare questo programma. Come?
Dal terminale!

sudo apt-get install apache2

Oppure da interfaccia grafica cercando all’interno del gestore pacchetti apache2, ed installandolo. Eventuali dipendenze verranno installate in automatico dal nostro fido apt. La procedura è equivalente per entrambe le versioni di ubuntu.

Per verificare se è andato tutto a buon fine, incollate o digitate il seguente indirizzo all’interno del vostro browser:

http://localhost/

o più semplicemente:

localhost

e dovrebbe comparirvi la pagina di conferma. Se così non fosse potrebbe esserci qualcosa nelle configurazioni che non va, o è andato storto qualcosa nell’ installazione.
Suggerisco inizialmente di rimuovere e reinstallare il pacchetto apache2, ma se qualcosa continua a non andare, prima di procedere oltre è meglio saltare alla parte in cui si parla delle configurazioni di Apache su Ubuntu.

Installare MySql/MariaDB

Ora tocchiamo un argomento leggermente più delicato: il database.
Può servire, come non servire.
Progetti come Jekyll, che consente di costruire una piattaforma per il blogging, scritto in Ruby, per esempio fanno a meno di un database. Ma generalmente offrono vantaggi in termini di prestazioni per gestire i dati, ed avere un proprio database è un requisito necessario per WordPress, come per altre piattaforme.

MySql viene distribuito con due licenze, una GNU GPL ed un’altra commerciale. Ovviamente di default nelle principali distro Linux troviamo la prima licenza, compatibile con gli standard e l’etica che spesso sono pilastri delle community Open Source. Spesso. Tuttavia dopo che nel 2009 Oracle ha acquisito il controllo su MySql, si è visto un progressivo sbilanciamento delle funzionalità che cozzavano con le iniziali linee guida di sviluppo.

Così Michael Widenius ha abbandonato il progetto MySql per costruire assieme ad altri il database Mariadb che è un fork di MySql, mantenendo tuttavia lo spirito Open Source e comunitario.

La wiki di Ubuntu utilizza di default il pacchetto MySql, ma altre distro linux stanno passando a Mariadb, e personalmente ritengo che sia un passo che presto o tardi anche la distro di Chanonical farà. Per tanto…
In questa guida utilizzerò Mariadb ed i comandi ad esso associati, per quanto mantengano un elevatissima compatibilità con MySql.

Ciò in qualche modo influenzerà il codice che dovremo scrivere o il numero di applicativi compatibili con la nostra configurazione?
La risposta è Ni.
Gran parte dei comandi sono equivalenti come vedremo, ma alcune righe di codice potrebbero risultare incompatibili.
Tuttavia WordPress e generalmente tutte le altre piattaforme Open Source non risentono dell’uso di un pacchetto o l’altro, quindi usare Mariadb o MySql è indifferente.

Per installare Mariadb in Ubuntu 15.04 e 14.04 dovrete digitare all’interno del terminale il seguente comando:

sudo apt-get install mariadb-server mariadb-client

La procedura di installazione di mariadb vi chiederà in automatico una password per l’utente root del database- ossia il suo amministratore- e chiederà se volete migrare da MySql a Mariadb, nel caso il primo fosse stato già installato all’interno della vostra distro.

Mariadb Password

Installare PHP

Il PHP è il linguaggio di programmazione lato server più usato nel web, attualmente, ma vi sono diverse alternative allettanti come il Python o Ruby; tuttavia è da tener presente che moltissimi framework  sono scritti appunto in PHP.
E quindi, cosa fare?

È semplice: dipende.
Come il mio professore di Fondamenti di Informatica mi ha sempre detto, la struttura di un programma dipende soprattutto da cosa io voglio fare, o lui mi chiede all’esame, beninteso.

Lo scopo di questa guida è spiegare come costruire un Server LAMP rivolto alle esigenze più comuni del web, quindi spiegherò come installare e configurare PHP, ma ciò nulla di vieta di sperimentare altri linguaggi e soluzioni.
(Una piccola nota: Sulle distro GNU/Linux generalmente Python è installato di default!)

Ritornando alla nostra adorata console, che con il suo cursore lampeggiante ci attende, per installare PHP per Ubuntu 14.04 e 15.10 vi basterà dare il seguente comando:

sudo apt-get install libapache2-mod-php5 php5 php5-cli php5-common php5-mcrypt php5-readline php5-json php5-mysql

Per verificare che sia andato tutto liscio, basta andare all’indirizzo; su Ubuntu 14.04:

localhost/test.php

E dovremmo venir salutati dal server.

Per Ubuntu 15.10 od ubuntu 15.04 non serve recarsi a tale indirizzo non essendoci nella root del server alcun file php, e per tanto bisogna scrivere un paio di righe di codice.
Attenzione! adesso farò riferimento alla direcotry standard della radice del server valida per entrambe le versioni di ubuntu!
Bene, premesso ciò da terminale dirigiamoci in:

cd /var/www/html

La directory /var/www/html è la radice predefinita del server LAMP installato su Ubuntu; qualunque essa sia la versione a cui si riferisce. Ma attenzione, per modificare i suoi file, o crearne di nuovi/eliminarli, c’è bisogno dei permessi di root.
Quindi apriamo la cartella come root dando da console:

sudo

Una volta data la password del superuser, ed all’interno di /var/www/html potremo installare WordPress o semplicemente inserire i nostri file php da testare.
Prendendo quest’ultima strada, provvediamo a creare un file denominato info.php, ma il nome è arbitrario: potete usare qualsivoglia nome od editor.

Usando nano per scrivere questo file basta digitare, facendo attenzione ad avere i permessi di root:

nano info.php

oppure come semplici utenti:

sudo nano info.php

Adesso inserite questo semplice codice contenente una funzione che non farà altro che resistuire tutte le informazioni sul server appena installato.

<?php
    phpinfo();
?>

Salvate digitando ctrl+O ed uscite digitando ctrl+X.

Aprite il vostro browser preferito- o Windows Explorer 6 se siete masochisti- ed andate al seguente url:

http://localhost/info.php

E vi accoglierà una sontuosa tabella con tutto ciò che dovreste sapere riguardo il server LAMP.
Questa procedura di verifica è ovviamente valida anche per Ubuntu 14.04 oltre che 15.10 o 15.04, come per ogni distro Linux cambiando in modo opportuno i percorsi.

Nota bene Ho incluso nei pacchetti da installare php5-mysql che a dispetto del nome è compatibile anche con mariadb, tuttavia è da tenere presente che non è necessario se sul proprio server si fa a meno del database.

Installare phpMyAdmin

Un altro strumento che semplificherà la vita dello sviluppatore Web, è phpMyAdmin; un programma scritto in PHP- come il nome lascia intendere- e dedicato alla gestione dei database basati su MySql e Maridb fornendo un’interfaccia grafica che sostituisca la console.
Per intallarlo basta digitare nel terminale:

sudo apt-get install phpmyadmin

Durante l’installazione vi verrà chiesto per quale server configurare phpmyadmin, inoltre la password creata durante l’installazione di mariadb per l’utente root dei database, ed una password per permettere l’accesso di root al programma; differenziandola o mantenendola uguale a quella del database.
Per ragioni di sicurezza è conveniente differenziare, in ogni caso.

Eventualmente potrebbe essere necessario riavviare il servizio apache per rendere effettivi i cambiamenti; tuttavia vedremo in seguito come fare. Per ora vediamo che per accedere a PhpMyAdmin basta andare all’indirizzo:

cd http://localhost/phpmyadmin

phpmyadmin installazione

Installazione PhpMyAdmin al terminale Ubuntu

Conclusioni

Onore a te, o prode che hai letto tutto il mio articolo!

Spero di averti spiegato cosa sia e come si installi un server LAMP su Ubuntu, e di non averti annoiato con tutte le informazioni che non sono altro che una piccola porzione del sapere di un amministratore di rete!
Sì, sono tutte nozioni utilizzate dai professionisti della rete anche nel mondo aziendale, se per tanto credevi di aver letto solo per hobbie e nessun possibile riscontro nel reale, beh… Non è così 🙂
Dopotutto questa è “L’informatica nel reale“!

E per chi è giunto qui senza barare- saltando qua e là per i titoli- ho un piccolo regalino:

Attivare e disattivare le componenti del server LAMP

Abbiamo visto come installare Apache, adesso vediamo come disattivarlo od attivarlo durante l’esecuzione di Ubuntu!
Dividerò i comandi per Ubuntu 14.04/14.10 e precedenti(dotate di upstart) e versioni successive ad Ubuntu 15.04/15.10 dotate invece di systemd.

Per Ubuntu 14.04/14.10 e precedenti i comandi relativi al server apache e upstart sono:

Avvio, ma di default il server è sempre attivo al login:
sudo service apache2 start

Fermiamo il server:
sudo service apache2 stop

Ed infine riavviamolo:

sudo service apache2 restart

Per Ubuntu 15.10/15.04 e successive, dotate di systemd:

sudo systemctl status apache2.service

Mostrerà lo stato del servizio apache2, non preoccupatevi per la lunghezza del nome: utilizzando il tasto TAB il terminale completerà o vi mostrerà le opzioni per ciò che cercate!

sudo systemctl start apache2.service

Avvierà il servizio Apache, ma ricordate che normalmente sarà attivo di default all’avvio di Ubuntu.

Stanchi di giochicchiare col web server? Bene!

sudo systemctl stop apache2.service

Disattiverà il servizio fino al prossimo riavvio!
Ma a proposito, come si riavvia il server LAMP?

sudo systemctl restart apache2.service


 

Spero che questo mio articolo ti sia piaciuto, e se trovi qualche imperfezione o vorresti dire la tua sulle soluzioni che ho adottato, scrivimi nei commenti! 😀

Fonte:
Wiki di Ubuntu: http://wiki.ubuntu-it.org/Server/Web

Commento (4)

  • mosilon| 3 Novembre 2015

    molto interessante – l’articolo è spiegato in modo da farsi capire anche dai principianti.
    ottimo lavoro, un saluto a tutti voi!

  • linux totorials| 22 Agosto 2016

    It’s remarkable in support of me to have a site, which is good in support of
    my experience. thanks admin

  • tanosk8| 29 Dicembre 2016

    mi avete aiutato tantissimo, vi ringrazio, ancora però non mi è chiara la strutture di apache, ho provato a leggere la documentazione in inglese, ma non riesco a capire bene.
    per ora però posso comunque testare il mio database e visualizzarlo anche con phpmyadmin ^_^.

  • Lascia una risposta

    Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *