Laboratorio di Sistemi Informativi

Guida alla configurazione di Ubuntu Linux

A.A. 2010/2011

docente: Gianluca Amato


Vai all'home page del corso

Vediamo come configurare un sistema Linux (in particolare Ubutnu da 8.04 in poi) per l'utilizzo del PHP con tutte le impostazioni richieste nel corso di Laboratorio di Sistemi Informativi. Quanto detto in questa pagina si applica in linea di principio anche ad altre distribuzioni, ma i dettagli cambiano. Si consiglia quindi di utilizzare Ubuntu come sistema di sviluppo, a meno di essere esperti con i sistemi Linux.

Assumeremo che Ubuntu sia già stato installato, che il computer sia connesso ad Internet e che abbiate letto la lezione Introduzione a Linux. L'installazione di Ubuntu è particolarmente semplice (rispetto ad altri sistemi operativi.. ma è certamente più complesso che installare un programma), e si trovano numerose guide on-line su come farlo. Una volta installato, quello che dobbiamo fare è:

  1. installare il software aggiuntivo richiesto (MySQL, Apache, PHP);
  2. configurare Apache e PHP;
  3. preparare la directory public_html;
  4. controllare se tutto è andato bene.

Passo 1: installare il software aggiuntivo

Ubuntu viene rilasciato con tutto il software necessario per sviluppare programmi in PHP e MySQL, ma questo software non è installato di default. Quello che dovete fare è aprire il Gestore di Pacchetti Synaptic e installare i seguenti pacchetti: mysql-server, mysql-client, php5, php5-mysql. In alternativa, potete aprire un terminale e dare il seguente comando:

sudo apt-get install mysql-server mysql-client php5 php5-mysql

In entrambi in casi, prima di iniziare l'installazione, vi verrà chiesta la password del vostro sistema Linux, per confermare che siete veramente voi davanti alla tastiera. Durante l'installazione del software, vi verrà chiesta una'altra password: questa è la password che verrà impostata per l'utente root di MySQL. Potete scegliere quest'ultima password come volete, ma ricordatevela, altrimenti non riuscirete a connettervi a MySQL.

Una volta terminato, avrete MySQL, Apache e PHP funzionaneti sul vostro computer. MySQL ha un unico utente root con la password indicata da voi durante l'installazione. Potete creare nuovi utenti o cambiare password con i comandi GRANT (vedi lezione su Gestione Utenti).

ATTENZIONE: password di MySQL dimenticata

Se dimenticate la password di root di MySQL non vi disperate. Aprite un terminale e date il comando:

sudo dpkg-reconfigure mysql-server-5.0

se avete la Ubuntu dalla 8.04 fino alla 9.04, oppure

sudo dpkg-reconfigure mysql-server-5.1

se avete la Ubuntu 9.10 o 10.04.

In ogni caso, se tutto va bene, vi dovrebbe richiedere di inserire una nuova password per l'utente root di MySQL, cancellando la password vecchia che non vi ricordate più.

Passo 2: configurare Apache e PHP

Nelle aule del laboratorio mettiamo i file PHP e HTML nella cartella public_html della nostra home directory, e lo stesso vorremmo fare a casa. Per motivi di sicurezza, su quasi tutte le distribuzioni Linux l'uso della cartella public_html è disabilitato. Per abilitarlo, aprire un terminale e dare i comandi:

sudo a2enmod userdir 
sudo service apache2 restart

Il primo comando attiva la directory public_html, il secondo riavvia il server web con la nuova configurazione.

Purtroppo, dalla Ubuntu 10.04 in poi, l'interprete PHP nelle cartelle public_html è disabilitato per motivi di sicurezza. Nelle versioni più vecchie invece, sebbene il PHP sia abilitato, non è possibile modificare la configurazione tramite il file .htaccess. Per risolvere questi problemi dobbiamo configurare il supporto PHP di Apache. Scaricare il file userdir-options e dare i seguenti comandi dal terminale:

sudo cp userdir-options /etc/apache2/sites-available/
sudo a2ensite userdir-options
sudo service apache2 restart

Il comando cp copia il file che avete scaricato nella directory dove Apache tiene i suoi file di configurazione (nel comando di cui sopra, assumo che il file userdir-options si trovi nella directory corrente, altrimenti occorre sostituire userdir-options con il suo percorso assoluto o relativo). Il comando a2ensite attiva il file di configurazione che avete copiato e service apache2 restart riavvia il server web.

Test

Prima di andare avanti, controllate che tutto sia andato bene:

Se non ci riuscite qualcosa è andata male nell'installazione... riprovate.

Passo 3: configurare la propria cartella public_html

Creare a questo punto la cartella public_html dentro la proprio home directory, o dall'interfaccia grafica, o da terminale con il comando:

mkdir ~/public_html

Adesso, se mettete un file HTML o PHP dentro la cartella public_html, dovrebbe essere possibile accedervi dal browser con l'indirizzo http://localhost/~nome_utente/nome_file. Per avere la stessa configurazione usata a lezione, relativa a buffering dell'output, visualizzazione messaggi di errore, etc.., create dentro public_html un file che si chiama .htaccess (mi raccomando il punto iniziale) con il seguente contenuto:

php_value display_errors On
php_value error_reporting -1
php_value output_buffering Off

Siccome i file che iniziano con un punto sono file nascosti, non riuscirete a vederlo normalmente. Dall'interfaccia grafica, potete premere Ctrl-h per visualizzare i file nascosti, mentre dal terminale il comando ls -a visualizza l'elenco completo di tutti i file, compresi quelli nascosti.

Passo 4: controllare se tutto è andato bene

Creare un file test.php nella cartella public_html con il seguente contenuto:

<?php
  echo 1/0;
?>

Caricate la pagina dal browser all'indirizzo http://localhost/~nome_utente/test.php. Se appare un messaggio del tipo:

Warning: Division by zero in /home/<nome_utente>/public_htm/test.php on line 2 

vuol dire che è tutto a posto.

Vai all'home page del corso

Valid XHTML 1.0 Strict Valid CSS!