back to top

Installazione e configurazione di PHP su Ubuntu Server

Come già più volte detto nelle precedenti lezioni, un web server deve poter processare non solamente pagine statiche (cioè composte da "puro" HTML) ma anche pagine dinamiche (cioè generate al volo mediante istruzioni scritte in diversi linguaggi di programmazione).

Ci sono vari linguaggi di programmazione dedicati alla composizione di pagine dinamiche, noi andremo ad installare quello più diffuso su Linux, che si sposa perfettamente con il nostro web server Apache2: PHP.

Installazione di PHP5 per Apache2

Installiamo quindi PHP5 assieme al suo modulo per Apache2. Per farlo lanciamo il seguente comando:

sudo apt-get install php5 libapache2-mod-php5

Per accertarci della avvenuta installazione possiamo lanciare il comando:

php -r 'echo "nnInstallazione avvenuta con successonnn";'

che non farà altro che scrivere – sempre che l’installazione di PHP sia riuscita correttamente – "Installazione avvenuta con successo" sul nostro terminale.

Ora però andiamo anche a creare una semplice pagina PHP che testi la risposta del web server e ci dia pure tutte le informazioni sulla versione installata.

Possiamo creare la pagina all’interno di un nostro Virtual Host o, come in questo caso, direttamente nella directory /var/www/html di default.

Tramite un editor di testo creiamo il file test.php:

sudo nano /var/www/html/test.php

e scriviamo il seguente codice:

<html>
 <head>
  <title>Test PHP</title>
 </head>
 <body>
  <?php
  phpinfo();
  ?>
 </body>
</html>

In questo semplicissimo esempio vediamo un’integrazione del codice HTML con quello PHP. Richiamiamo la pagina appena creata nel browser digitando il seguente indirizzo:

http://IP_DEL_SERVER/test.php

Possiamo notare che quanto viene stampato va oltre al codice che abbiamo scritto. Abbiamo così un primo esempio di uno script PHP!

PHP info

Configurazione di PHP

Dopo aver visto come installare PHP all’interno del nostro web-server vediamo alcune sue configurazioni che possono esserci utili per i nostri siti web.

Il file php.ini

Il file che gestisce la configurazione di php è php.ini. Di default sulla nostra distro Ubuntu lo troviamo nel percorso:

/etc/php5/apache2/php.ini

ma possiamo sempre controllare quale file stia effettivamente caricando php aprendo la pagina test.php vista in precedenza e leggendo il valore dal parametro "Loaded Configuration File".

Il file php.in è organizzato in sezioni che raggruppano funzioni con scopi simili. Vediamo ora alcuni dei parametri gestiti, soffermando la nostra attenzione su quelli che potrebbe interessarci andare a modificare:

  • Resource Limits (max_execution_time, max_input_time, memory_limit) – Tramite questi tre parametri è possibile limitare tempo e risorse che gli script all’interno del codice php possono occupare. Andranno impostati in base alle risorse della propria macchina ma è sempre bene siano specificati onde evitare blocchi sul server causati da malfunzionamenti degli script.
  • Error handling and logging – In questa sezione troviamo i parametri che gestiscono gli errori e i log. I valori di queste direttive andranno cambiati a secondo delle fasi di sviluppo del sito php. In fase di scrittura infatti più informazioni abbiamo meglio è, ma quando questa sarà terminata e il sito messo online è di vitale importanza limitare al minimo ogni tipo di informazione riguardante gli errori. Questo perché le informazioni mostrate potrebbero essere usate per attacchi informatici con grosso rischio per la sicurezza del nostro sito e delle informazioni ad esso collegate. Vediamo due direttive tra le principali:
    • error_reporting: Qui viene indicato il livello di dettaglio degli errori, ovvero quali avvisi mostrare e quali no.
    • display_errors: Questa opzione determina se mostrare o meno a video gli errori che possono generarsi durante la navigazione del sito con relativi scripts.
  • File Uploads – Da questa sezione è possibile abilitare/disabilitare la possibilità di caricare file definendo le relative dimensioni. Anche qui vediamo due importanti direttive:
    • file_uploads: attiva o disattiva la possibilità di caricare file dal sito web.
    • upload_max_filesize: rappresenta il limite di dimensione per un file che viene caricato. Di default è 2MB, se il nostro sito prevedere l’upload di file è molto probabile che si debba aumentare questo valore.
  • Module Settings – Gli ultimi settaggi riguardano i Module Settings, ovvero le impostazioni di tutti i numerosi moduli disponibili per php. I nomi dei moduli sono racchiusi tra parentesi quadre e definiscono numerose funzionalità come l’invio di mail, la gestione delle date, l’interazione con i database.

Configurazione di index.php come pagina di default

Se abbiamo installato PHP sarà probabile che i nostri siti saranno scritti in questo linguaggio piuttosto che in semplice html, vediamo quindi come dire ad Apache di andare a leggere la nostra pagina .php come prima opzione. Di default infatti la prima pagina che Apache va a a leggere è index.html. Per modificare questo comportamento andiamo ad editare il file dir.conf:

sudo nano /etc/apache2/mods-enabled/dir.conf

Vediamo nella direttiva DirectoryIndex l’ordine assegnato da Apache per le prime pagine che andrà a leggere:

<IfModule mod_dir.c>
   DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

Modificando la specifica DirectoryIndex possiamo dare la precedenza a nuove pagine oppure darla a index.php con in questo esempio:

<IfModule mod_dir.c>
   DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Pubblicitร