Come Installare Apache, PHP e MySQL su Ubuntu (LAMPP)

Ecco una semplice guida per l'installazione di un server LAMP su un sistema locale Ubuntu. L'obiettivo di questo tutorial è quello di creare e testare sul computer locale vari siti che chiameremo "sito1" "sito2" ecc.

Con il termine LAMP si intente Linux, Apache2, MySQL 5 e PHP 5. Per lavorare al meglio, non può mancare phpMyAdmin che consente una comoda destione del database.

Per istallare il tutto basta dare il semplice comando da terminale:

sudo apt-get install apache2-mpm-prefork mysql-server libapache2-mod-php5 php5-mysql php5-gd phpmyadmin

Durante l'istallazione, oltre alla password dell'utente principale di Ubuntu occorrerà indicare:

  • la password di MySQL per l'utente root
  • tipologia di server a cui deve interfacciarsi phpMyAdmin: selezionare Apache 2.

Al termine dell'istallazione abiamo a disposizione:

  • un web server Apache 2
  • il database server MySQL
  • PHP 5 con il modulo per Apache e la libreria gd
  • phpMyAdmin per la gestione dei database

Il sistema è pronto è per funzionare ma consiglio di fare le seguenti modifiche:

Modifica della DocumentRoot

Apache normalmente va a leggere i file che compongono il sito nella cartella /var/www. Questa posizione viene deefinita DocumentRoot

È preferibile spostare la DocumentRoot nella propria cartella home per semplificare la gestione dei permessi sui file. Altri vantaggi sono una migliore gestione del file system ed una più efficiente procedura di salvataggio dei dati in caso di crash o backup del sistema.

Ipotizziamo che il nome del nostro utente che accede a Ubuntu sia "mioutente". Nella nostra cartella home (/home/mioutente) creiamo la cartella public_html. Volendo testare più siti, converrà creare la varie cartelle "sito1", "sito2" dove verranno copiati i vari file relativi al progetto che si vuole testare.

Per Apache2 "sito", è una configurazione che il webserver andrà a leggere per sapere dove trovare i file da elaborare che si trova in in /etc/apache2/sites-available. Dopo l'installazione, c'è solamente un sito disponibile, chiamato default, ma possono essere definite più configurazioni contemporaneamente, attivando di volta in volta soltanto quella necessaria.

Quello che volgiamo fare è creare un nuovo sito in cui indicare che DocumentRoot in /home/utente/public_html/sito1 e quindi attivarlo su Apache2.
Per creare il nuovo sito: 

1) Innanzitutto copiamo il sito di default come punto di partenza e lo chiamiamo miosito1

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/miosito1

2) Modifichiamo la nuova configurazione con un editor di testo:

sudo gedit /etc/apache2/sites-available/miosito1

e indichiamo dive si trova la cartella che contenente il "sito1"

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /home/mioutente/public_html/sito1
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/mioutente/public_html/sito1>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

Salviamo il file.

3) Per disattivare il vecchio sito (default) ed attivare quello nuovo (miosito1) Ubuntu mette a disposizione due comodissimi comandi, che sono rispettivamente a2dissite e a2ensite. Il primo comando a2dissite cancella il link simbolico di un sito abilitato mentre il secondo crea il link simbolico al nuovo sito.

Da terminale diamo il comando:

sudo a2dissite default && sudo a2ensite miosito1

Per rendere effettive le modifiche occorre riavviare Apache2:

sudo /etc/init.d/apache2 restart

Attivare il sito2

Per attivare il sito2 occorre ripetere i passaggi 1 e 2, sosteituendo sito1 con sito2.

Infine da terminale dare i comandi

sudo a2dissite miosito1 && sudo a2ensite miosito2

sudo /etc/init.d/apache2 restart

 

Attivare i Clean URLs

1)  Da terminale dare il comando

sudo a2enmod rewrite

2) Per rendere effettiva la configurazione dare

sudo apache2ctl -M

3) Verificare che nell'elenco compaia

rewrite_module (shared)

4) Modifichiamo la configurazione creata in precedenza nel file "sito1" con un editor di testo:

sudo gedit /etc/apache2/sites-available/miosito1

e modifichiamo "AllowOverride None" in "AllowOverride ALL"

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /home/mioutente/public_html/sito1
    <Directory />
        Options FollowSymLinks
        AllowOverride ALL
    </Directory>
    <Directory /home/mioutente/public_html/sito1>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride ALL
        Order allow,deny
        allow from all
    </Directory>

Salviamo il file.

 

Infine da terminale dare il comando

sudo /etc/init.d/apache2 restart