Creare un web server su Ubuntu con Apache, PHP, MySQL

Giovanni Canella

20/11/2012

8024

Un web server installato nel nostro computer può risultarci utile per i più disparati scopi, dalla semplice condivisione di files all'interno della rete locale, all'ambito professionale per testare i propri siti prima di caricarli online.

In questo articolo non utilizzerò i pacchetti già pronti come LAMP, ma vedremo come installarne uno ad uno e configurarli.

Installazione Server

Un server HTTP necessita che sia abilitato il port-forwarding sulla porta 80, in modo tale che funzioni correttamente. Bisogna stare però attenti a certi programmi che utilizzano la stessa porta: esempio banale è Skype, che se avviato ostacola la sua esecuzione.

Una volta aperta la porta 80 possiamo procedere.

Innanzitutto dobbiamo installare Apache, il vero e proprio web server (pesa poco più di 5MB), tramite:

sudo apt-get install apache2

 Installare Apache 2

Una volta installato colleghiamoci con il browser all'indirizzo: 127.0.0.1 o localhost, se viene visualizzata la pagina di default con scritto:

It Works!

This is the default web page for this server.
The web server software is running but no content has been added, yet.

vuol dire che tutto funziona correttamente e possiamo procedere oltre.

It Works!

Ora possiamo installare il database MySQL (circa 94 MB)

sudo apt-get install mysql-server

Confermiamo e quando ci verrà richiesto, inseriamo e confermiamo la password di MySQL (raccomandato).

Configurazione MySQL

Fatto ciò l'installazione proseguirà fino al completamento, senza il bisogno di inserire ulteriori informazioni.

Ora tocca a PHP (acronimo ricorsivo di PHP:Hypertext Preprocessor), linguaggio di programmazione interpretato per la realizzazione di pagine dinamiche, alla base del Web 2.0. Un must per il nostro web server personale!

Per farlo digitiamo:

sudo apt-get install libapache2-mod-php5 php5-mysql php5-gd

In questo comando è introdotto il modulo per Apache e la libreria GD (per manipolare e creare immagini).

Come ultima cosa installiamo phpMyAdmin (36 MB), dato che è abbastanza scomodo gestire il Database da terminale, sopprattutto se abbiamo la necessità di lavorare su siti di grandi dimensioni, contententi molte tabelle.

sudo apt-get install phpmyadmin

E quando ci viene chiesto selezioniamo (tramite Barra Spaziatrice) il server installato, con cui PhpMyAdmin deve essere eseguito, nel nostro caso apache2. Con Tab ci spostiamo su OK e infine diamo Invio...

Configurazione PhpMyAdmin

Poco dopo dovremo configurare phpMyAdmin con il DB. Abbiamo due scelte, quella manuale (consigliata per utenti esperti) o quella automatica (con dbconfig-common). Personalmente consiglio la seconda, per evitare di inceppare in errori, specialmente se è la prima volta.

Quindi spostiamoci su Si e confermiamo con un Invio.

Inseriamo la password del DB precendetemente impostata, e inseriamone una per proteggere l'accesso a PhpMyAdmin, dato che si presume venga utilizzato solo in locale, possiamo benissimo inserire la stessa di MySQL. 

Configurazione PhpMyAdmin con il Database

Ora tutto è pronto, e già funzionante, manca solo una configurazione opzionale del server Apache, che con pochi passaggi, ci può rendere più semplice la vita in molte occasioni. La modifica in questione riguarda la DocumentRoot, che di default si trova in /var/www/, direcotry soggetta a limiti di permessi, e per questo motivo consiglio caldamente di spostarla in una posizione più "comoda". In questo caso utilizzerò la /home.

Creiamo una nuova cartella da terminale digitando:

mkdir /home/giovanni/www

Dove al posto di giovanni, metterete il vostro nome utente.

Prima di procedere è bene chiarire una cosa: Apache utilizza il concetto di siti, ovvero configurazioni che il server andrà a caricare e applicare. Esse si trovano in /etc/apache2/sites-available.

Nel nostro caso dobbiamo creare un nuovo sito, in cui verrà spostata la root del server, e rendere effettive le modifiche per Apache.

Per farlo seguiamo i seguenti passaggi:

  1. Copiamo il sito di default, per poi riutilizzarlo come partenza di quello nuovo, dove al posto di "Ginho" bisognerà inserire il nome del sito che vogliamo.
    sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/Ginho

     

  2. Successivamente modifichiamo il file di configurazione con l'editor che più ci aggrada... 
    sudo nano /etc/apache2/sites-available/Ginho

     

  3. ... e sostituiamo i percorsi evidenziati con quello nuovo desiderato.

DocumentRoot /home/giovanni/public_html

Options FollowSymLinks
AllowOverride None

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

Modifica percorso DocumentRoot di Apache

Fatto ciò salviamo tutto, e disattiviamo il vecchio sito per poi attivare quello nuovo, tramite due semplici e comodissimi comandi:

sudo a2dissite default 
sudo a2ensite Ginho

Finalmente riavviamo il server tramite:

sudo service apache2 restart

Disattivazione vecchio sito e abilitazione nuovo

Come ultima cosa dobbiamo dare i giusti permessi alla cartella in cui è presente il sito, in modo che Apache possa accedervi:

sudo chmod 777 -R /home/giovanni/public_html/

Ora abbiamo finito! Siamo riusiti a creare un nostro web server occupando circa 200 MB!

Come controllo finale, proviamo ad ricaricare nel browser la pagina localhost, e se abbiamo caricato un sito sulla root del server (index.html/php), ci verrà mostrata una nuova schermata.

Esempio sito

Ti potrebbero interessare

I più letti