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 è:
public_html
;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).
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ù.
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.
Prima di andare avanti, controllate che tutto sia andato bene:
mysql -u root -p
con la password che avete immesso precedentemente;http://localhost/
: dovrebbe comparire una pagina web con la scritta "It works!"Se non ci riuscite qualcosa è andata male nell'installazione... riprovate.
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.
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.