Blog

Installare Apache, MySQL e PHP su Ubuntu

Guida rapida per l'installazione di un server LAMP su un sistema locale Ubuntu, che include Apache2, PHP 5, MySQL 5 e phpMyAdmin.

Installare Apache, MySQL e PHP su Ubuntu

Ubuntu non dispone di un software che provveda ad installare e gestire tutti i software necessari ad un webserver, come ad esempio EasyPHP per Windows.

Tuttavia il processo di installazione è talmente semplice che è sufficiente un solo comando per avere un sistema completo ed affidabile:

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


Le uniche richieste che vi verranno fatte durante l'installazione, oltre alla password di root Ubuntu, sono la password MySQL per l'utente root e la tipologia di server a cui deve interfacciarsi phpMyAdmin, in cui dovrete selezionare Apache 2.
Al termine dell'operazione avremo installato i seguenti software pronti per l'utilizzo:

DocumentRoot e Virtual Server

Come sopra riportato, il sistema sarebbe già funzionante al 100%, ma esiste una piccola correzione alla configurazione che potrebbe portare molti benefici in pochi e semplici passaggi.
Si tratta della DocumentRoot del server Apache, che di default si trova in /var/www, ma sarebbe preferibile spostarla nella vostra home per più di un motivo, tra cui una questione di permessi sui file, una migliore gestione del file system ed una più efficiente procedura in caso di crash o backup del sistema.
Anche in questo caso, le operazioni da eseguire non richiedono particolari skills in materia di configurazione webserver.

Nella vostra home, create una directory, chiamata public_html, che sarà poi la candidata a diventare la vostra web root.

mkdir /home/utente/public_html


Ovviamente, in questo e nei prossimi passi, ricordatevi di sostituire a utente il nome della vostra home.

Apache2 ha il concetto di siti, che sono configurazioni separate che il webserver andrà a leggere, caricate in /etc/apache2/sites-available. Di default, c'è solamente un sito disponibile, chiamato default, ma possono essere caricate più configurazioni contemporaneamente, attivando di volta in volta soltanto quelle necessarie.
Nel vostro caso, l'obiettivo è di creare un nuovo sito in cui spostare la DocumentRoot in /home/utente/public_html/ e quindi attivarlo su Apache2.
Per creare il nuovo sito:

  1. Copiare il sito di default come punto di partenza.

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

  2. Modificare la nuova configurazione con un editor di testo, ad esempio:

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

  3. Cambiare il parametro DocumentRoot per fare in modo che punti al nuovo percorso, ad esempio /home/utente/public_html/.

  4. Cambiare la direttiva Directory, sostituendo con .

  5. Salvare il file

Ora è necessario disattivare il vecchio sito (default) ed attivare quello nuovo (miosito). Per fare ciò, Ubuntu ha provveduto a creare due comodissimi comandi, che sono rispettivamente a2dissite e a2ensite.

sudo a2dissite default && sudo a2ensite miosito


Ultimo ma non meno importante passaggio è il riavvio di Apache2:

sudo /etc/init.d/apache2 restart


Se doveste avere dimenticato di creare la directory /home/utente/public_html/, ricevereste un messaggio di avvertimento.

Aprendo il browser su all'indirizzo http://localhost/ dovreste essere reindirizzati al contenuto di ~/public_html/.

Ci tengo comunque a ricordarvi che è stata installata una configurazione di base, senza dubbio più adatta per i propri test in locale che ad un web server vero e proprio.


Per aumentare la sicurezza e aggiungere qualche personalizzazione, potrete modificare il file principale per la configurazione di Apache 2, che trovate in /etc/apache2/apache2.conf, ricordandovi di creare una copia di backup prima di procedere con le vostre prove e di riavviare apache2 per applicare le modifiche.

Se avete bisogno di maggiori informazioni potete visitare la sezione Apache e Web Server oppure leggere la guida all'utilizzo dei moduli Apache2.

Per quanto riguarda la configurazione di PHP, anticipo solamente che il file di configurazione, php.ini, è presente all'interno della directory /etc/php5/apache2.

Ricordatevi infine di spostare tutto il contenuto di /var/www nella vostra nuova DocumentRoot.

26 commenti

  1. Avionix23 luglio 2008, 18:48:26

    Complimenti,
    ottima e coincisa guida per chi si appresta ad installare per la prima volta un sistema LAMP.
    Saluti.

  2. Loris.genetti23 luglio 2008, 20:59:19

    Ti ringrazio per i complimenti,
    spero possa risultare utile a molti utenti, che magari non hanno ancora molta esperienza con Ubuntu.
    Se qualcuno avesse bisogno di chiarimenti non esiti dal comunicarmeli tramite i commenti!

  3. Aleunix24 luglio 2008, 23:03:17

    Ottima esposizione: sintetica e chiara... e, poi, mi ha risolto un problema :))

    Grazie.

    Ale

  4. Loris.genetti24 luglio 2008, 23:11:11

    Grazie Ale,
    se trovi il blog interessante puoi sempre iscriverti ai feed RSS :)

  5. Piscione7515 ottobre 2008, 13:16:10

    Ciao e complimenti per la guida.
    Allora il mio problema è simile ma:
    Inanzitutto su XP è installato WAMP cmq:
    per vedere i siti, basta andare su "localhost/cartelladelmiosito" ;
    invece io voglio che quando si su "localhost" devo vedere direttamente l'index del sito, ho risolto inserendo il contenuto della cartella del mio sito, nellla root principale (c/wamp/www); OK..!?
    Ma se ho anche altri siti da visualizzare, sempre andando su localhost( eventuale indirizzo IP, tramite lan, in una intranet)..come faccio..!?
    Al momento se voglio vedere il mio sito faccio es: 192.168.100.100; per altri devo fare :192.168.100.100/cartellasito !
    Spero di essere stato chiaro e GRAZIE.

  6. Loris.genetti15 ottobre 2008, 13:56:31

    @piscione75: non ho ben capito qual è il problema di cui parli. Da quello che ho letto, sembra che tu non voglia digitare:
    http://192.168.100.100/nomesito/
    per visualizzare un particolare sito web, ospitato sul tuo "server".
    E fin qui mi sembra corretto.
    Qual è quindi il tuo obiettivo finale? Cosa vorresti digitare nella barra degli indirizzi e quale contenuto vorresti che gli venga associato?

  7. Silvio17 novembre 2008, 21:17:36

    Salve, grazie per la guida. Però non si apre http://localhost/phpmyadmin, quale altro passaggio devo fare?

  8. Loris.genetti18 novembre 2008, 10:11:18

    @silvio: come scritto nell'ultima riga del post, devi spostare la cartella "phpmyadmin" (e tutte le altre presenti in /var/www/) nella tua nuova DocumentRoot.

  9. Bizio5 febbraio 2009, 19:13:38

    ciao... ho seguito la guida, ma nella cartella var/www/ trovo solo l'index.html... non c'è nient'altro... cosa occorre fare?

  10. Loris.genetti5 febbraio 2009, 21:18:45

    @bizio: non devi fare assolutamente nulla! :)
    Lo spostamento dei file è necessario solo nel caso in cui siano già stati installati in /var/www/ dei software che si desidera utilizzare nella nuova DocumentRoot (ad es. phpMyAdmin).

  11. Maured21 febbraio 2009, 12:11:41

    Continuando il ragionamento di bizio, pensavo di trovarmi già tutto in /var/www (phpMyAdmin, Mysql, Php5). Che fare per installarli in quel directory? Grazie

  12. Loris.genetti3 maggio 2009, 11:34:35

    Prova con il comando da terminale:
    sudo apt-get install phpmyadmin

  13. Bog18 luglio 2009, 12:26:46

    ciao, volevo sapere se alla fine qualcuno ha risolto il problema di phpMyAdmin? io ho fatto come detto nella guida:

    ho installato tutto, spostato la cartella www in documenti ma qunado inserisco l'url: http://localhost/phpmyadmin ma ottengo un errore: Not Found

    The requested URL /phpmyadmin was not found on this server.

    e qnd provo a installare phpMyAdmin con il commando:

    bog@bog-desktop:~$ sudo apt-get install phpmyadmin

    ottengo:

    Lettura della lista dei pacchetti in corso... Fatto
    Generazione dell'albero delle dipendenze in corso
    Lettura informazioni sullo stato... Fatto
    phpmyadmin è già alla versione più recente.
    0 aggiornati, 0 installati, 0 da rimuovere e 0 non aggiornati

    come faccio ?

  14. Loris.genetti18 luglio 2009, 14:26:12

    @bog: per poterti aiutare devi dirmi quali cartelle ci sono al momento nella tua DocumentRoot.

  15. Zobbi10 ottobre 2009, 12:57:04

    Ciao, tutto funziona a meraviglia, ma come potrei fare per accedere da un altro pc?

  16. Loris.genetti10 ottobre 2009, 13:44:13

    Puoi da un altro pc, connesso sulla stessa rete, tramite l'indirizzo:
    http://<indirizzo_ip>/

    Ad esempio se Apache è installato sul computer che ha IP 192.168.1.1, potrai accedere tramite l'indirizzo:
    http://192.168.1.1/

    Il tutto deve comunque essere configurato al meglio prima di funzionare.

  17. Pasquale13 aprile 2010, 01:54:58

    io ho seguito le istruzioni alla regola da premettere che è solo un mese che utilizzo UBUNTU. Volevo sapere come mai quando faccio http://127.0.0.1 mi visualizza quello che c'è nella cartella /usr/www e non quella che ho fatto public_html nel mio utente.

    eppure non ho riscontrato nessun errore.
    Grazie mille spero di avere notizie al più presto.

  18. Loris.genetti13 aprile 2010, 10:06:54

    @Pasquale: prova ad eseguire di nuovo i passaggi descritti nella guida, ogni tanto succede di dimenticare qualche cosa per strada. Nel caso tutto dovesse essere a posto, prova a cancellare la cache del browser e quindi visitare nuovamente l'indirizzo http://127.0.0.1/

  19. Roberto2 luglio 2010, 11:08:26

    Scusami, ma con lucid cambia qualche cosa? perché non riesco a fare il cp all'inizio...

  20. Davide13 luglio 2010, 13:02:19

    complimenti guida chiarissima ma ho un problema vado su http://localhost e mi scrive:



    It works!

    This is the default web page for this server.

    The web server software is running but no content has been added, yet.
    come mai ?

  21. Loris.genetti13 luglio 2010, 14:31:00

    @davide: quel messaggio in inglese sta a significare che non hai caricato alcun contenuto nella DocumentRoot del server, che se hai seguito correttamente la guida dovrebbe essere /home/utente/public_html/

  22. Pablo9 agosto 2010, 21:12:33

    ciao a tutti, ottima guida, pero' anche io non trovo phpbbmyadmin, ho installato un foum e tutto ok percio' le tabelle da qualche parte devono stare, mi potreste illuminare?

  23. Mastazi23 agosto 2010, 20:43:44

    Per tutti quelli che non vedono la cartella phpmyadmin: dovete creare un alias scrivendo il comando
    sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

    Dove al posto di var/www/ dovete mettere il percorso della vostra cartella

  24. Tony7 novembre 2010, 00:15:24

    ciao, ho installato il tutto sul mio notebook con ubuntu. Ora ho altri pc in lan con i quali vorrei accedere al sito web pubblicato su ubuntu ma non riesco a collegarmi nonostante abbia aperto le porte 80 e 8080 su ubuntu...sicuramente c'è qualcosa che devo configurare mi sapresti aiutare?

  25. Mene18 maggio 2011, 19:32:20

    Ciao a tutti! io ho riscontrato un problema.
    Allora ho eseguito alla lettera i procedimenti...ma quando vado su http://127.0.0.1/ o http://localhost/ che è la stessa identica cosa...vedo Index of ma nessun file... nella mia home ho creato la cartella public_html l'ho indirizzata ma non riesco a vederne i file dove sbaglio? grazie

  26. Fabio18 dicembre 2014, 18:29:21

    Ottima descrizione della configurazione di Apache2.

    Solo una cosa che non riesco a capire. Ossia la configurazione della DocumentRoot diversa da /var/www/html che non vuole proprio saperne di funzionare.

    Infatti quando cambio con home/utente/public_html, non mi riconosce la pagina con il seguente errore: FORBIDDEN you dont'have permisssion to access/on this server. Sapresti dirmi perchè?
    Ti ringrazio ciao

Solo gli utenti registrati possono lasciare commenti.

© Copyright ©2008-2019. Tutti i diritti riservati.